第02章 数据类型、运算符和表达式
第2章 c语言基本数据类型、运算符和表达式
1000000000000101
1111111111111010
1111111111111011
整型数据所分配的字节数及数的表示范围(16位系统)
整型数据类型
[signed ]int unsigned [int] [signed] short [int] unsigned short [int] [signed ]long [int] unsigned long [int]
制和十六进制只是整型数值的三种表现形式而已。 整型常量类型的确定:根据值大小默认类型。 整型常量后面加后缀1或L,则认为是long int型。 无符号数也可以用后缀表示,整型常数的无符号数的后缀为“U”或“u”。 注意:在程序中是根据前缀来区分各种进制数的。因此在书写时不要把前缀弄错造
成结果不正确。
缺省形式的 整型数据类型
int unsigned short int unsigned short int long int unsigned long
字节数
取值范围
2
-32768~32767(-215~215-1)
2
0~65535
2
-32768~32767(-215~215-1)
2
0~65535(0~216-1)
3.字符型常量
字符常量是用单引号括起来的一个字符。它有二种形式:可视字符常量、转义字符常量。 (1)可视字符常量:单引号括起来的单个可视字符。
大多数字符常量都可以通过加单引号的方式表示,但有些特殊字符,如单引号本身和有些不 可见的特殊字符,就无法通过这种方法表示,为了解决这一问题,C语言引入了“转义字符”。
C语言教程课件第二章 数据类型、运算符和表达式
例 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
例 向字符变量赋以整数。 • 运行结果: #include <stdio.h> a b void main() 97 98 { char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); }
• 说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它 的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98
• 字符型变量用来存放字符常量,注意只能放一个字符。 • 字符变量的定义形式如下:char c1,c2; • 在本函数中可以用下面语句对c1,c2赋值: c1='a';c2='b'; • 一个字符变量在内存中占一个字节; • 将一个字符常量放到一个字符变量中,是将该字符的 相应的ASCII代码放到存储单元中,这样使字符型数据 和整型数据之间可以通用。一个字符数据既可以以字 符形式输出,也可以以整数形式输出。
运行结果: total=300 例2.1 符号常量的使用 #define PRICE 30 #include <stdio.h> void main ( ) 说明:如再用赋值语句给PRICE赋值是错的 { PRICE=40;/*错误,不能给符号常量赋值*/ int num, total; num=10; total=num * PRICE; printf(″total=%d\n ″,total); } 说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在 本文件中出现的PRICE都代表30,可以和常量一样进行运算
第二章+数据类型、运算符和表达式
格式项的一般形式为:
%[附加格式] 格式控制符
方括号中的内容可以缺省。
附加格式控制
含义说明
l(小写字母)
m
数据最小输出宽度(一个具体正整数)
.n(一个具体 对实数,表示输出几位小数;对字 正整数) 符串,表示截取的字符个数
-(负号) 输出的数据域内向左对齐
+(正号) 要求正数和0带正号输出,负数带符 号输出
变量的定义 格式为: 类型 变量列表;
可同时定义多个同类型的变量,之间用逗 号分隔。 变量的初始化 1. 变量定义时:格式为 类型 变量名=常数; 2. 变量定义后:通过赋值语句实现
2019/7/20
变量的作用域:变量能够起作用或者 可以被使用的程序范围。由定义的位 置决定
1. 局部变量:在函数内部定义的变量, 只在其定义的某个函数或复合语句范 围内有效。
3) 例题分析:example25
2019/7/20
4. 寄存器变量:程序运行时存储在CPU寄 存器中的变量,只用于局部变量,要求 是整型和字符型变量。说明符“register”
5. 外部变量:表示该变量可以在程序中的 任何地方使用,包括定义此变量的源文 件之外,作用域为整个工程。只能用于 全局变量。说明符为“extern”。
a string”
2019/7/20
注意:“A”与‘A’完全不同,前者是字 符串,后者是字符,它们在内存中的存 贮空间并不相同。 在字符串中使用双引号必须以“\”” 表示。
实例 example22 符号常量:用标识符命名的常量,可代
替常量 在程序中直接使用。 1. 使用C语言中的一个预编译指令#define
整型常量:可以用十进制、八进制和十 六进制来表示。 a.十进制整数:[ ± ]若干各0~9的数字。 如12, 0 ,-234等
数据类型、运算符与表达式
6.1 一维数组
例6.4程序中第一个for语句逐个输入10个数到数组a中,然后把a[0]送 入max中。在第一个for语句中,a[1]到a[9]逐个与max中的内容比 较,若比max的值大,则把该下标变量送入max中,因此max在己 比较过的下标变量中总是为最大者。比较结束,输出的max值即 为10个整数的最大值。
2.5 字符型数据
2.5.1 字符常量
1.字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。例如,'
A','6','+'等。 2.转义字符
C语言还允许使用一种特殊形式的字符常量,就是以反斜杠 “\”开头的转义字符,该形式将反斜杠后面的字符转变成另外的 意义,因而称为转义字符。
下一页 返回
第2章 数据类型、运算符与表达式
2.1 C语言的数据类型 2.2 标识符、常量和变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 算术运算与算术表达式 2.7 赋值运算与赋值表达式 2.8 自增、自减与逗号运算
2.1 C语言的数据类型
C语言提供有丰富的数据类型。其数据类型及其分类关系如 图2-1所示。
int i,max,a【10」; printf(”input 10 numbers:\n");
上一页 下一页 返回
6.1 一维数组
for(1=0;1<10;1++) scanf(”%d”,&a[i]);
max=a[0]; for(i=1;i<10;i++)
if(a[i]>max) max=a[i]; printf("maxnum=%d\n",max);
形பைடு நூலகம்输出。
C语言第02章 数据类型、运算符与表达式
回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。
第02章数据类型、运算符和表达式
个整型变量在内存中分配2个字节的存储单元。 数值是以补码(lement) 表示的。
20
2.3 整型数据
2.整型变量的分类
共六种
有符号基本整型 (signed)int 有符号短整型 (signed)short (int ) 有符号长整型 (signed) long (int) 无符号基本整型 unsigned int 无符号短整型 unsigned short (int) 无符号长整型 unsigned long (int)
16
2.2 常量与变量
变量名必须是标识符
例:sum,_total, month, Stu_name, l_1_2,BC235
M.D.John, ¥123,3D64, a>b
注意: 编译系统将大写字母和小写字母认为是两个不同的字符。 在C语言中,要求对所有用到的变量作强制定义,也就是“先定义,后
22
2.3 整型数据
3. 整型变量的定义 C规定在程序中所有用到的变量都必须在程序中定义, 变
量说明的一般形式为: 数据类型名 变量名表;(变量名之间用逗号分隔)
例如: int a,b,c;(指定变量a、b为整型) unsigned short c,d;(指定变量c、d为无符号短整型) long e,f;(指定变量e、f为长整型)
如:0x123,代表16进制数123,等于十进制数 291。 -0x12等于十进制数-18。
10
浮点型常量
C89规定,浮点常量只能使用十进制。 浮点数的书写可以直接书写或采用指数形式。采
用指数形式时以10底数,用e/E表示指数。 指数部分必须为整数,不能是小数,不能带小数
第2章数据类型、运算符和表达式
(2)预定义的标识符 预定义的标识符在C语言中都有特殊含义,如 scanf和 printf 是库函数名,系统中用来作为输入输出函数。用户一般不要用 它们作为自定义标识符。 (3)用户自定义标识符 在程序中使用的变量名、符号常量名、函数名、数组名、类 型名、文件名、标号名等有效的字符序列,除库函数的函数名、 关键字由系统定义外,其余都由用户自定义,统称为用户自定 义标识符。 例如: total,area,_ab,sum,average,student_name,等 都是合法的标识符。 标识符虽然可由程序员随意定义,但标识 符是用于标识某个量的符号。因此,命名应尽量有相应的意义, 以便阅读理解,做到“见名知义”。 变量名要用小写字母,符号常量名要用大写字母。即在标识 符中,大小写是有区别的。例如:A和a是两个不同的标识符。
数据类型 类型说明符 数值范围
整型 int -32768~32767 -215~215-1 0~65535 -32768~32767 -215~215-1
字节
2 2 2 2 4
无符号整型 unsigned int 短整型 short
无符号短整 unsigned short 型 long 长整型 无符号长整 unsigned ong 型
2.2.4 字符串常量
字符串常量是由一对双引号括起的字符序列。例如: "CHINA" ,"C program." , "$12.5" 等都是合法的字符串常 量。字符串常量和字符常量是不同的量。它们之间主要有以下 区别: ①字符常量由单引号括起来,字符串常量由双引号括起来。 ②字符常量只能是单个字符,字符串常量则可以含零个或多个 字符。
3、十进制整常数 十进制整常数没有前缀。其数码为0~9。 以下各数是合法的十进制整常数:237,-568 ,65535 4、整型常数的后缀 在16位字长的机器上,基本整型的长度也为16位,因此表 示的数的范围也是有限定的。十进制无符号整常数的范围为 0~65535,有符号数为-32768~+32767。如果使用的数超过了 上述范围,就必须用长整型数来表示。长整型数是用后缀“L” 或“l”来表示的。例如: 十进制长整常数 158L (十进制为158) 358000L (十进制为358000) 八进制长整常数 012L (十进制为10) 077L (十进制为63) 0200000L (十进制为65536) 十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165) 0X10000L (十进制为65536
第2章 数据类型运算符和表达式
printf("%f",b);
return 1; }
浮点型常量的类型
C编译系统将实型常量作为双精度来处理。例如已定义一个实型 变量f,有如下语句: float f = 2.45678 * 4523.65
系统将2.45678和4523.65按双精度数据存储(占64位)和运算, 得到一个双精度的乘积,然后取前7位赋给实型变量f。
特殊字符常量
解释:\ddd \ddd是一个ASCII码(八进制)表示一个字符。 如:‘\101’代表八进制的101,换算成十进制是 65,即字母‘A’
‘\0’代表ASCII码为0的控制字符,即“空操作” 字符
字符常量举例
例2.5:转义字符的使用。 int main() {
printf(" ab c\t de\rf\tg\n"); printf("h\ti\b\bj k");
含义 换行,将当前位置移到下一行开头。 水平制表(跳到下一个Tab位置) 退格,将当前位置移到前一列 回车,将当前位置移到本行开头 换页,将当前位置移到下页开头 代表一个反斜杠“\” 代表一个单引号(撇号)字符 代表一个双引号字符 1到3位八进制所代表的字符 1到2位十六进制所代表的字符
ASCII代码 10 9 8 13 12 92 39 34
-011表示八进制的-11,即十进制的-9
3)十六进制表示,以0x开头的数。 如:0x123 -0x12
数据在内存中的存放形式
整型数据在内存中以二进制形式存放。 如: int i; i = 10;
数值编码
数值以补码表示。
一个正整数的补码和该数的原码(即该数的二进 制形式)相同。
第2章 C语言,数据类型、运算符和表达式
(C语言运算符总表见教材P26或P325附录C) return 31
C语言程序设计
算术运算符
+ - * / % 功能: 操作数要求: 结合性: 优先级: 注意事项: 算术运算 两个操作数 (当-用作负号时除外) 自左至右(当-用作负号时除外) -(负号) —— * / % —— + - (由高→低) ① 两个整数相除,结果为整数! 例: 3/2=1 ② %要求两个操作数均为整型数据! 且余数与被除数同号!
说明: ① 字符变量中存放的是字符ASCII码值! ② char与int数据间可进行算术运算!
char choice = 'A';
return24
C语言程序设计
字符串常量
字符常量是用双引号括起来的字符序列. 例如: "hello!" , "0" (1) 字符串常量在内存中的存储 (2) 字符串常量.vs.字符常量
整型
浮点型 字符型 说明:
① 数据类型所占字节数随机器硬件不同而不同! ② 可用sizeof(数据类型说明)来计算某一数据类型占内存的字节数! return
C语言程序设计 next part
2. 常量与变量
标识符命名 常量 变量
go go go
6
C语言程序设计
标识符命名
例: 判断下列标识符号合法性
next
ห้องสมุดไป่ตู้
20
C语言程序设计
字符常量
转义字符是用反斜杠\后面跟一个字符或一个八进制或十 六进制数表示的ASCⅡ码值。例如: '\n', '\101' (1) C语言中常用的转义字符 (2) 转义字符使用实例
C语言教程第2章数据类型、运算符与表达式
常量只能在定义时赋值,然后不能再改变 其值 常数、 const常量、宏常量和枚举常量, 都可以用来表示一个永远不会改变的数
前者不建议直接使用,而用后三者代替
C语言大学实用教程
2.5 变 量
变量是在程序执行过程中可以改变、可以赋 值的量。
在程序中每一个变量都有一个名子即变量名, 程序对该变量访问(存入、读取)都是通过变 量名进行的。
运行结果: 1234567936.000000
1234567890.000000
}
C语言大学实用教程
2.6 常用运算符及表达式
算术运算符
+,-,*,/,%
加、减、乘、除、求余运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合
#include <math.h>
常用的标准数学函数
C语言大学实用教程
#include <stdio.h> /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) { return (a + b); }
2.1 一个简单的C程序例子
/*主函数*/ ) { int x, y, sum = 0;
022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见
以“0x”或者“0X”开始的整型常数是十六进 制
A~F和a~f用来表示十进制的10~15
十六进制的形式比较常用,尤其在进行位一级的 控制的时候 0x12、-0x1F, -0x1f
C语言大学实用教程
2.4 常量
字符常量
C++ 第02章 数据类型、运算符和表达式
已知 a=0, b=5 则 a&&b 的值是 0 则 a||b 的值是 1 则 !a&&b 的值是 1
注意: 在C++程序中, 欲表示数学关系 0≤x≤10 , C++的逻辑表达式必须写成 0<=x && x<=10, 而不能写成 0<= x <=10。
为什么?
2.4.6 位运算符和位运算表达式 位运算是对整型数据的运算(可以操作到位), 符号位参与运算, 主要用于系统程序设计。 位运算符共有6 种: 它们是:按位与(&) 按位或(|) 按位异或(^) 按位取反(~) 左移(<<) 右移(>>)
第二部分 面向对象的程序设计
第2章
数据类型、运算符与表达式
[例1.1]一个简单的C++程序
#include <iostream.h> void main( void ) C++ 程序的构成: { (1)数据描述 int num, square ; cout << "num=" ; (2)执行步骤( 算法) cin >> num ; square = num*num; cout << "num的平方为:" << square << '\n'; }
注意:int 型变量与 unsigned int 型变量的区别 32 位
int 型: (补码)
符号位 32 位 unsigned int 型: 无符号位
范围 -231~ (231 - 1) 范围 0~ (232 - 1)
C语言知识点:第2章 数据类型、运算符与表达式
主讲教师:杨剑
第 2 章:数据类型、运算符与表达式
1. 本章目标:
理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 使用关系和逻辑运算符
2. 内存如何存放数据
电脑使用内存来记忆计算时所使用的数据 内存如何存储数据? 内存像旅馆.数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空
23. 复合赋值表达式
24. 赋值表达式和逗号运算符
赋值表达式 a=b=c=5;(从右向左计算) a +=a-=a*a
逗号运算符和逗号表达式 3+5,6+8 a=3*5,a*4
25. 习题
~7~
C 语言程序设计知识点
主讲教师:杨剑
有以下程序
main()
{
char a1=’M’,a2=’m’;
12. 单精度浮点型
float 在 C 语言中用于存储单精度浮点数 float 32 位 10-38 至 10+38 ,7 位有效数字 声明:
float price; 初始化:
float score = 11.3; score = 65.90;
13. 双精度浮点型
double 32 位 16 位有效数字 声明:
const float PI=3.14; S=PI*r*r; //等价于 3.14*r*r const 关键字的作用就是“冻结”一个量,它的值不能被修改,是一个只读(read only) 量。 优点:比数值常量可读性好、修改容易
18. 符号常量 2(宏常量)
还可用宏定义符号常量 语法:#define 符号名 常量值 例: 计算圆的周长时
第2章 数据类型、运算符、表达式
第二章 数据类型、运算符、表达式一、数据类型C 语言中的数据类型比别的语言丰富。
基本类型的数据又可分为常量和变量,它们可与数据类型结合起来分类,即为整型常量、整型变量、实型(浮点型)常量、实型(浮点型)变量、字符常量、字符变量、枚举常量、枚举变量。
1、常量与符号常量常量:在程序执行过程中,其值不发生改变的量称为常量。
常量区分为不同的类型,如68、0、-12为整型常量,3.14,9.8为实型常量,‘a ’,‘b ’,‘c ’则为字符常量。
常量即为常数,一般从其字面即可判别。
符号常量:有时为了使程序更加清晰和便于修改,用一个标识符来代表常量,即给某个常量取个有意义的名字,这种常量称为符号常量。
如:#define PI 3.142、变量变量:程序执行过程中其值可以改变的量。
定义方法定义形式:数据类型 变量名1,变量名2,……变量名n ;整型(int )数据类型 基本类型 整型 单精度型(float )字符型(char )长整型(long )短整型(short )实型 双精度型(double )枚举类型(enum )共用体类型(union )构造类型结构体类型(struct )数组类型空类型(void )指针类型(*)如:char ch1, ch2; /* ch1,ch2为变量*/float x, y; /* x ,y 为实型变量*/int a, b, c; /* a,b,c 为整型变量*/在书写变量说明时,应注意以下几点:(1) 允许在一个类型说明符后,说明多个相同类型的变量。
各变量名之间用逗号间隔。
类型说明符与变量名之间至少用一个空格间隔。
(2) 最后一个变量名之后必须以“;”号结尾。
(3) 变量说明必须放在变量使用之前。
一般放在函数体的开头部分。
另外,也可在说明变量为整型的同时,给出变量的初值。
其格式为:类型说明符 变量名标识符1=初值1,变量名标识符2=初值2,...;3、数据在内存中的表示整型数据:以二进制的形式表示(1) int 类型正数: 如 123 (+123)用 16 位二进制(二个字节)表示原码 反码(原码同) 补码(原码同)最大正整数 215-1=214+213+212+211+210+29+2827+26+25+24+23+22+21+20=32767负数:如 –123原码补码(补码加 1)1取反加1 最大负整数-215=32768 因为 -215 < -(215-1) 所以用 -215 而不用 -(215-1)(2) unsigned (int) 类型称为无符号整数,它不是指不带“+ 或 -”号的整数,而是指内存表示这类数时没有符号位,16最大数215+214+213+2122+21+20=65535最小数 0 (3) long (int) 类型用 32 位二进制(四个字节)表示,其他同 int 型(4) short 类型有的计算机(小型、中型、大型机)int 即是 long ,而short 用16 位二进制(二个字节)表示。
数据类型、运算符与表达式c语言
字符串常量 定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 ‘\0’ 作为字符串结束标志
h e l l o \0
例 字符串“hello”在内存中
例 ‘a’
“a”
例 空串 “”
例: char ch; ch=“A”;
01111111~ 11111111 (-127~+127)
01111111~ 10000000 (-127~+127)
01111111~ 1000000 (-127~+127)
(用一字节表示数)
负数补码转换成十进制数:最高位不动,其余位取反加1
例 补码:11111001 取反:10000110 加1: 10000111=-7
int
int
double
double
double
double
double
double
例 int i; float f; double d; long l;
除上面讲的自动转换外,还有强制转换。 例如, (double)a (等价于(double)(a)) /*将变量a的值转换成double型*/ (int)(x + y) /*将x+y的结果转换成int型*/ (float)5 / 2(等价于(float)(5)/2) /*将5转换成实型,再除以2(=2.5)*/ (float)(5 / 2) /*将5整除2的结果(2)转换成实型(2.0)*/
如何定义整型变量? int i;/*定义为整型变量*/ i=10; /*给i赋以整数10*/ int a=10; short b=30; long c = 20; unsigned int number=20;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运算符:sizeof 控制语句: break,case,continue,default,do,
else,for,goto,if,return,switch,while
特别注意:不同的C编译系统对C标准的支持有差异!
2.2 C语言的基本数据类型
数据:程序处理的对象,分为常量和变量。 数据类型:用于描述程序中的数据。 C语言的数据类型
符号常量
符号常量:有名字的常量。须先定义后使用。 定义方法: 使用常量说明符const const 类型名 常量名=值; 使用编译预处理命令 #define 常量名 值 举例: const double pi=3.1415926; #define PI 3.1415926 优点:可读、一致、易维护
运行结果: 32767,-32768
说明:数值是以补码表示的。一个整型变量只能容
纳-32768~32767范围内的数,无法表示大于 32767或小于-32768的数。遇此情况就发生 “溢出”。
实数类型
实数类型(实型)又称浮点型,用于描述实数。 实型数据的表示:科学记数法,即 m×10e 其中m称为尾数,e称为阶码。 实型数据的存储:仅存尾数和阶码,如3.14159*101存储为:
第2章 数据类型、运算符和表达式
教学目标
掌握C语言的字符集、关键字和标识符 理解C语言的数据类型 理解字符型和整型数据在内存中的存储格式 掌握基本类型数据的常量的表示方法 掌握基本类型变量的定义和使用 掌握数据类型转换的规则以及强制数据类型转换方法 掌握各种运算符的使用用法及其优先级和结合性 掌握字符数据输入输出函数getchar和putchar的用法 掌握格式输入输出函数scanf和printf的用法,理解输 入输出界面设计的重要性,掌握简单输入输出界面设 计方法
C编译系统将浮点型数据都作为双精度来处理!
实型变量的定义及应用
例2.4 浮点型数据的舍入误差 特别注意: 不同编译器对实型
#include <stdio.h> int main(void) {float a,b; a = 123456.789e5; b = a + 20 ; printf("a=%f,b=%f\n",a,b); printf("a=%e,b=%e\n",a,b); }
变量的定义
说明:
变量定义不是可执行语句,应置于可执行语句前。 同一变量不可重复定义。 变量名以简短、见名知意、见名知型为优。 应按变量的取值范围选择变量类型,以占用内存 少、操作简便为优。 C语言没有提供字符串类型,字符串是用字符型数 组或指针来处理的。
变量的初值
变量的初值:在首次使用变量前,变量的取值。 置变量初值:
整型数据的表示
无符号整型数据:用原码表示,即其二进制数表示。 带符号整型数据:用补码表示。 补码: 正数的补码:与其原码相同。 负数的补码:由其相应的正数的原码的各位逐位求反 后在最低位加1而得到。 例如:若用双字节整型,则1和-1的补码分别是 0000000000000001,1111111111111111。
整数类型
整数类型的符号问题:
整数类型 例如:整数13在内存中实际存放的情况
整型常量
整型常量可用十进制、八进制、十六进制表示。
十进制整数: 由0~9数字组成,除表示正负数的字符外,第一个数字 不能是0(整数0除外)。例如: 110,+12,-25,0,1289 +(正)号可以省略。 八进制整数: 由数字0~7数字组成,且以0开头。例如: 012,056376 十六进制整数: 以0X(x)开头,由数字0~9和字母a(A)~f(F)组成。例如: 0x1abCD,0X02a5,0xABCFD213
变
量
变量:在程序执行过程中其值可以被改变的量。 变量四要素: 变量类型 变量名 变量的值 变量的指针(变量在内存中的位置) 变量须先定义后使用
变量的定义
作用:指明变量的类型、名字。 格式: 类型名 变量名1,变量名2,…,变量名n; 例1: int n; 该语句定义(或声明)了一个名为n的整型变量,变量n 占用4字 节内存,&n是变量n的指针,即变量n在内存中的位置。 例2: int year,month,day; double x1,x2,x3; long sum,average,total;
标识符
用途:变量名、函数名、数组名、类型名等的命名 构成:由大小写字母、数字和下划线组成,且首字符必须是字母 或下划线,不能与关键字同名。 举例:
合法的标识符 MyName、Value、_12、b_tree、abm、sum 非法的标识符 6ab、$ab、a3.5、case
说明:
标识符区分大小写,其有效长度与C编译系统有关 标识符应体现“见名知义”原则,注重可读性
说明:可以看到不同种类的整型数据可以进行算术运算
运行结果: a+u=22,b+u=-14
整型变量的定义及应用 思考:
若有语句:u=a+b; 情况会怎样?
若按%u输出,则u=65524
Байду номын сангаас
提示:
涉及到的问题:数据类型转换。
整型变量的定义及应用
例2.3 整型数据的溢出
#include <stdio.h> int main(void) {int a,b; a=32767; b=a+1; printf("%d,%d\n",a,b); }
目 录
2.1 C语言的标识符和关键字 2.2 C语言的基本数据类型 2.3 运算符和表达式 2.4 数据的输入输出
2.1 C语言的标识符和关键字
编写C程序必须使用C语言字符集中的字符 大写、小写英文字母各26个 阿拉伯数字10个 运算符、标点符号及其他字符30个 + - * / % = ! & | ~ ^ < > ; : ? , . ‗ ― \ ( ) [ ] { } # _ 空格 说明 集外字符可用集内若干字符表示,如π用pi表示 源程序注释中可以包含字符集以外的字符 字符串作为数据也可以包含字符集以外的字符
变量的有效数字长度的限制。 在VC6.0中, 单精度一般为7 位, 双精度15位
运行结果:
a=12345678848.000000,b=12345678848.000000 a=1.234568e+10,b=1.234568e+10
说明:一个浮点型变量只能保证的有效数字是7位有效数字,
后面的数字是无意义的,并不准确地表示该数。应当避免将 一个很大的数和一个很小的数直接相加或相减,否则就会“ 丢失”小的数。
类型 基本型 短整型 长整型 无符号整型 无符号短整型 无符号长整型 类型说明符 int short long unsigned unsigned short unsigned long 位数 2字节 2字节 4字节 2字节 2字节 4字节 数的范围 -32768~32767 -215~215-1 -231~231-1 0~65535 0~65535 0~(232-1)
基本数据类型:C语言预定义的数据类型,包括整型、
字符型、实型和空类型 int 整型 float 单精度浮点型 char 字符型 double 双精度浮点型
定义数据类型:用户按编程需要定义的数据类型,包
括数组、指针、结构体、共用体和枚举
常量
常量:程序执行过程中,其值不能被改变的量。 常量分为:字面常量和符号常量。 字面常量:不做说明,直接使用的常量。如:12,34.5。 字面常量分为:整型常量、实型常量、字符型常量和字符 串常量。 符号常量:经说明或定义后才能使用的常量。
学习数据类型,应关注其占用的内存字节数、取值范围及 所支持的操作。 例如:基本数据类型int 用于描述整数 占用4字节内存(在VC++中) 取值范围是-2147483648~2147483647 支持的操作包括加、减、乘、除等运算
基本数据类型:整型、实型和字符型
整数类型
整数类型(整型):描述整数。 整型分为: 双字节整型:short [int],unsigned short [int]。 四字节整型:int,unsigned [int],long [int], unsigned long [int]。 八字节整型:有些C语言编译系统支持,如VC++的_ _int64。
变量的使用
取变量的值称为对变量的引用。 对变量赋值与引用统称为对变量的操作或使用。 变量一旦定义,即可多次使用: int n=3,s,t; s=n; /*取变量n的值,对变量s赋值*/ scanf("%d",&t); /*将输入整数存入变量t*/ /*&t表示取变量t的指针(地址)*/
基本数据类型
实型常量
后缀修饰浮点常量: 带后缀f或F的浮点常量是单精度浮点数(float型) 带后缀d、D或无后缀的浮点常量是双精度浮点数 (double型) 带后缀l、L结尾的浮点常量是长双精度浮点数(long double型) 举例: 0.12f,12.3E12f,0.12D,0.12, 12.3E12,3.5L,12.3E12L
关键字
关键字又称保留字:编程语言预定义的具有专门用途的 标识符,不允许用作用户的标识符。 ISO C语言共有32个关键字: 数据类型定义:typedef 数据类型:auto,char,double,enum,float,int,
long,short,struct,union,void,extern,static, signed,volatile,unsigned,register,const
在定义变量时,直接初始化: int n=3; float x=12.5; int a,b=n+1,c=18; /*仅初始化部分变量*/ 在定义变量后,用赋值语句赋初值: float pi; pi=3.14159; 变量定义后,若未指定初值,则其初值或取0或取随 机值,由所分配的存储器种类决定。详见第5章。