C语言第二章数据类型运算符与表达式

上传人:cn****1 文档编号:591589016 上传时间:2024-09-18 格式:PPT 页数:37 大小:118.50KB
返回 下载 相关 举报
C语言第二章数据类型运算符与表达式_第1页
第1页 / 共37页
C语言第二章数据类型运算符与表达式_第2页
第2页 / 共37页
C语言第二章数据类型运算符与表达式_第3页
第3页 / 共37页
C语言第二章数据类型运算符与表达式_第4页
第4页 / 共37页
C语言第二章数据类型运算符与表达式_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《C语言第二章数据类型运算符与表达式》由会员分享,可在线阅读,更多相关《C语言第二章数据类型运算符与表达式(37页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计第第2章章 数据类型、运算符与表达式数据类型、运算符与表达式C语言第二章数据类型、运算符与表达式本章主要学习任务1. 1.C的数据类型;的数据类型;2.常量、变量;常量、变量;3. 常用基本数据类型的表示、机内存储、变常用基本数据类型的表示、机内存储、变量分类;量分类;4. 数值型数据混合运算及类型转换规律。数值型数据混合运算及类型转换规律。C语言第二章数据类型、运算符与表达式2.1 C的数据类型n n数据类型:数据的存在或组织形式数据类型:数据的存在或组织形式 基本类型基本类型 指针类型指针类型 构造类型构造类型 空类型空类型整型整型字符型字符型实型实型枚举型枚举型单精度型单精

2、度型双精度型双精度型数组类型数组类型结构体类型结构体类型共用体类型共用体类型 C语言第二章数据类型、运算符与表达式注意:C语言中的数据有变量与常量,它们分别属于上述这些类型。1、不同的数据类型有不同的取值范围。、不同的数据类型有不同的取值范围。2、不同的数据类型有不同的操作。、不同的数据类型有不同的操作。3、不同的数据类型即使有相同的操作有时含、不同的数据类型即使有相同的操作有时含义也不同。义也不同。4、不同的数据类型对计算机可能出现的错误、不同的数据类型对计算机可能出现的错误不同。不同。C语言第二章数据类型、运算符与表达式2.2 常量与变量一、常量:一、常量: 字面常量字面常量 符号常量符号

3、常量 (用标识符代表)(用标识符代表) 定义方法:定义方法: #define PI 3.1415 C语言第二章数据类型、运算符与表达式不是不是C语句,不必在行末加分号。语句,不必在行末加分号。该命令是用标识符代替一个字符串,不作正该命令是用标识符代替一个字符串,不作正确性检查确性检查使用符号常量的好处:使用符号常量的好处:n n 含义清楚、见名知意。含义清楚、见名知意。n n 修改方便、一改全改。修改方便、一改全改。 C语言第二章数据类型、运算符与表达式二、变量二、变量变量必须先定义后使用变量必须先定义后使用变量名、变量值、存储单元的关系变量名、变量值、存储单元的关系标识符标准:标识符标准:

4、1 1、组成:字母、数字、下划线,且首字符、组成:字母、数字、下划线,且首字符不能为数字不能为数字 合法:合法:abc, _321, _1a,abc, _321, _1a,非法:非法: 2aa, 2aa, a#c,_c.9a#c,_c.9 2 2、长度:、长度: 3 3、大写小写不同、大写小写不同 SUMsum SUMsum 4 4、选择标识符的时候要、选择标识符的时候要“见名知意见名知意” C语言第二章数据类型、运算符与表达式符号常量与变量的关系符号常量与变量的关系 符号常量:值在作用域内不能改变,不能符号常量:值在作用域内不能改变,不能被再赋值;常用大写被再赋值;常用大写 变量:值是可以改

5、变,可以多次赋值的;变量:值是可以改变,可以多次赋值的;常用小写常用小写C语言第二章数据类型、运算符与表达式2.3 整型数据一、整型常量一、整型常量十进制整数十进制整数:八进制整数:八进制整数:十六进制整数:十六进制整数: 注:注:C语言整常数没有二进制整数形式语言整常数没有二进制整数形式C语言第二章数据类型、运算符与表达式二、整型变量二、整型变量1. 1.内存中的存放形式内存中的存放形式2. 2. 以二进制补码形式存放以二进制补码形式存放3. 3. 每每个个基基本本整整型型变变量量在在内内存存中中占占4个个字字节节(VC环境中环境中)2. 2.整型变量的分类整型变量的分类 基本类型基本类型

6、int 可加修饰符:可加修饰符:short 、long、signed、unsignedC语言第二章数据类型、运算符与表达式整数类型类型类型比特数比特数最大取值范围最大取值范围最大取值范围最大取值范围signed int 32-231(231-1) unsigned int320(232-1)signed short int16-215(215-1)unsigned short int160(216-1)signed long int32-231(231-1)unsigned long int320(232-1)C语言第二章数据类型、运算符与表达式3. 整型变量的定义整型变量的定义定义格式:数据

7、类型名定义格式:数据类型名 变量名;变量名;n n可定义多个相同类型的变量。各个变量用可定义多个相同类型的变量。各个变量用“,”分隔。类型说明与变量名之间至少有一分隔。类型说明与变量名之间至少有一个空格间隔。个空格间隔。n n最后一个变量名之后必须用最后一个变量名之后必须用“;”结尾。结尾。n n变量说明必须在变量使用之前。变量说明必须在变量使用之前。n n可以在定义变量的同时,对变量进行初始可以在定义变量的同时,对变量进行初始化。化。 C语言第二章数据类型、运算符与表达式4. 整型数据的溢出整型数据的溢出 整型数最大允许值整型数最大允许值+1,最小允许值,最小允许值-1,会出,会出现什么情况

8、?现什么情况? 例:短整型数据的溢出例:短整型数据的溢出void main() short a=32767,b; b=a+1; printf(a=%d,b=%dn,a,b); C语言第二章数据类型、运算符与表达式三、整型常量的类型三、整型常量的类型整型常量赋值给整型变量时,如何匹配?整型常量赋值给整型变量时,如何匹配?n n值在值在-3276832767范围内的整数,可以赋范围内的整数,可以赋值给值给int和和short int 、long int型变量。型变量。n n如果值超过了以上范围,在如果值超过了以上范围,在-21474836482147483647范围内,可以赋值给范围内,可以赋值给

9、int、long int型变量。型变量。C语言第二章数据类型、运算符与表达式2.4 实型数据一、实型常量一、实型常量n n十进制小数形式:十进制小数形式: .123、123.、123.0n n 指数形式:指数形式:e之前必须有数字,之前必须有数字,e后面指数后面指数必须是整数必须是整数n n规范化的指数形式:字母规范化的指数形式:字母e之前的小数部分之前的小数部分中,小数点左边应有且只有一位非零数字中,小数点左边应有且只有一位非零数字C语言第二章数据类型、运算符与表达式二、实型变量二、实型变量1. 1.实型数据在内存中是以指数形式存放的实型数据在内存中是以指数形式存放的2. 2.实型变量的分类

10、实型变量的分类3. 3. 单精度单精度 float 4字节字节4. 4. 双精度双精度 double 8字节字节5. 5. 长双精度长双精度 long double 10字节字节6. 6.3. 实型数据的舍入误差实型数据的舍入误差7. 7. 因为实型变量的有效位以外的数字将被因为实型变量的有效位以外的数字将被舍去,由此会产生误差舍去,由此会产生误差C语言第二章数据类型、运算符与表达式 void main() float a; double b; a=33333.33; b=33333.33333; printf(a=%f,b=%fn,a,b);三、实型常量的类型三、实型常量的类型实型常量可以赋

11、给实型常量可以赋给float, double, long double ,按变量类型截取实型常量中相应的有效数按变量类型截取实型常量中相应的有效数字位数字位数C语言第二章数据类型、运算符与表达式注意:注意:n n不要试图用一个实数精确表示一个大整数,不要试图用一个实数精确表示一个大整数,记住:浮点数是不精确的。记住:浮点数是不精确的。n n实数一般不判断实数一般不判断“相等相等”,而是判断接近或近,而是判断接近或近似。似。n n根据要求选择单精度、双精度。根据要求选择单精度、双精度。C语言第二章数据类型、运算符与表达式2.5 字符型数据一、字符常量一、字符常量直接用单引号括起来,直接用单引号括

12、起来,使用字符的转义表示法表示(使用字符的转义表示法表示(ASCII码表码表示)示)特殊字符:特殊字符: 预先定义的一部分常用的转义字符。如预先定义的一部分常用的转义字符。如n 换行,换行,t水平制表。水平制表。C语言第二章数据类型、运算符与表达式转义表示格式:转义表示格式:ddd或或xhh(其中其中ddd,hh是是字符的字符的ASCII码,码,ddd八进制、八进制、hh十六进制十六进制)。注意:不可写成注意:不可写成0xhh或或0ddd(整数整数)。C语言第二章数据类型、运算符与表达式二、字符变量二、字符变量字符型变量是用来存放字符数据,同时只能字符型变量是用来存放字符数据,同时只能存放一个

13、字符。存放一个字符。定义形式:定义形式:char a=a,b=b; 所有编译系统都规定一个字符变量在内存中所有编译系统都规定一个字符变量在内存中占一个字节。占一个字节。三、内存中的存储形式三、内存中的存储形式 以字符的以字符的ASCII码,以二进制形式存放,占码,以二进制形式存放,占用用1个字节。个字节。C语言第二章数据类型、运算符与表达式字符型数据和整型数据之间可以通用(当作字符型数据和整型数据之间可以通用(当作整型量)。具体表现为:整型量)。具体表现为:n n可以将整型量赋值给字符变量,也可以将可以将整型量赋值给字符变量,也可以将字符量赋值给整型变量。字符量赋值给整型变量。n n可以对字符

14、数据进行算术运算可以对字符数据进行算术运算n n一个字符数据既可以以字符形式输出,也一个字符数据既可以以字符形式输出,也可以以整数形式输出。可以以整数形式输出。 注意:字符型数据作为整数使用范围注意:字符型数据作为整数使用范围0-255(无符号)(无符号) -128-127(有符号)。(有符号)。C语言第二章数据类型、运算符与表达式 例:给字符变量赋以整数(字符型、整型数例:给字符变量赋以整数(字符型、整型数据通用)据通用)main() /* 字符字符a的各种表达方法的各种表达方法 */ char c1=a; char c2=x61; char c3=141; char c4=97; char

15、 c5=0x61; char c6=0141;printf(c1=%c,c2=%c,c3=%c,c4=%c,c5=%c,c6=%cn,c1,c2,c3,c4,c5,c6);printf(c1=%d,c2=%d,c3=%d,c4=%d,c5=%d,c6=%dn,c1,c2,c3,c4,c5,c6);C语言第二章数据类型、运算符与表达式四、字符串常量四、字符串常量字符串常量:是一对双引号(字符串常量:是一对双引号(“”)括起来的字)括起来的字符序列。符序列。注意:注意:n n字符常量与字符串常量。如字符常量与字符串常量。如“a”和和a。n nC规定以规定以0(ASCII码为码为0的字符)作为字的字

16、符)作为字符串结束标志。符串结束标志。n n不能将字符串赋给字符变量。不能将字符串赋给字符变量。n nC语言没有专门的字符串变量,如果想将语言没有专门的字符串变量,如果想将一个字符串存放在变量中,可以使用字符一个字符串存放在变量中,可以使用字符数组。数组。C语言第二章数据类型、运算符与表达式2.6 变量赋初值C语言允许在定义变量的同时使变量初始语言允许在定义变量的同时使变量初始化。化。可以使被定义的变量的一部分赋初值可以使被定义的变量的一部分赋初值对几个变量赋同样的初值:对几个变量赋同样的初值:int a=3,b=3,c=3; 错误的赋值表示:错误的赋值表示:int a=b=c=3;C语言第二

17、章数据类型、运算符与表达式2.7 各类数值型数据的混合运算整型、实型、字符型数据之间可以混合运算整型、实型、字符型数据之间可以混合运算整型、实型、字符型数据之间可以混合运算整型、实型、字符型数据之间可以混合运算 进行运算时,不同类型的数据先转换成同一类型,进行运算时,不同类型的数据先转换成同一类型,进行运算时,不同类型的数据先转换成同一类型,进行运算时,不同类型的数据先转换成同一类型,然后进行计算然后进行计算然后进行计算然后进行计算转换的方法:转换的方法:转换的方法:转换的方法:自动转换(隐式转换)自动转换(隐式转换)自动转换(隐式转换)自动转换(隐式转换)强制转换。强制转换。强制转换。强制转

18、换。 C语言第二章数据类型、运算符与表达式1.自动动转换(隐式转换)自动动转换(隐式转换) 混合运算时,由编译系统自动完成。转换规混合运算时,由编译系统自动完成。转换规则:(参看图则:(参看图2-10) 赋值运算,赋值号右边的类型转换为左边的赋值运算,赋值号右边的类型转换为左边的类型。这种转换是截断型的转换,不会四类型。这种转换是截断型的转换,不会四舍五入。舍五入。2.强制转换强制转换 一般形式:(类型说明符)(表达式)一般形式:(类型说明符)(表达式) 功能:把表达式的结果强制转换为类型说功能:把表达式的结果强制转换为类型说明符所表示的类型。明符所表示的类型。C语言第二章数据类型、运算符与表

19、达式例如例如(int)a 将将a的结果强制转换为整型量。的结果强制转换为整型量。 (int)(x+y) 将将x+y的结果强制转换为整型量。的结果强制转换为整型量。 (float)a+b 将将a的内容强制转换为浮点数,的内容强制转换为浮点数,再与再与b相加。相加。说明:说明: 类型说明和表达式都需要加括号(单个变类型说明和表达式都需要加括号(单个变量可以不加括号)量可以不加括号) 无论隐式转换,强制转换都是临时转换,无论隐式转换,强制转换都是临时转换,不改变数据本身的类型和值。不改变数据本身的类型和值。C语言第二章数据类型、运算符与表达式例:强制类型转换例:强制类型转换void main() f

20、loat f=5.75; printf(int)f=%dn,(int)f); printf(f=%fn,f); C语言第二章数据类型、运算符与表达式2.8 算术运算符和算术表达式C C语言运算符:控制语句和输入输出以为语言运算符:控制语句和输入输出以为的基本操作都作为运算符处理的基本操作都作为运算符处理 P31P31表达式:使用运算符将常量、变量、函数表达式:使用运算符将常量、变量、函数连接起来,构成表达式。连接起来,构成表达式。一、算术运算符一、算术运算符 + +,- -,* *,/ /,% %1.1.两个整数相除,结果为整数,舍入方式为两个整数相除,结果为整数,舍入方式为“向零取整向零取整

21、”2.2.求余运算,两侧均应为整型数据,余数的求余运算,两侧均应为整型数据,余数的符号与被求余数符号相同。符号与被求余数符号相同。 C语言第二章数据类型、运算符与表达式二、算术表达式二、算术表达式1. 算术表达式:用算术运算符将运算对象连算术表达式:用算术运算符将运算对象连接起来的、符合接起来的、符合C语法规则的式子。语法规则的式子。2. 运算对象可以是常量、变量、函数等。运算对象可以是常量、变量、函数等。 合法的合法的C表达式:表达式:a*b/c-1.5+a 注意:注意:C语言算术表达式的乘号(语言算术表达式的乘号(*)不能省略)不能省略C语言表达式中只能出现字符集允许的字语言表达式中只能出

22、现字符集允许的字符。符。C语言算术表达式只使用圆括号改变运算语言算术表达式只使用圆括号改变运算的优先顺序(不要指望用的优先顺序(不要指望用)。)。C语言第二章数据类型、运算符与表达式3.3.(算术)运算符的优先级与结合性(算术)运算符的优先级与结合性(P.325(P.325附附录录)C C语言规定了运算符的语言规定了运算符的“优先级优先级”和和“结合性结合性”。优先级别相同,则按规定的优先级别相同,则按规定的“结合方向结合方向”处处理。理。左结合性左结合性右结合性右结合性对于复杂表达式为了清晰起见可以加圆括对于复杂表达式为了清晰起见可以加圆括号号“()()”强制规定计算顺序。强制规定计算顺序。

23、C语言第二章数据类型、运算符与表达式四、自增、自减运算符四、自增、自减运算符 +i,i+ -i,i-注意:注意:前置运算:前置运算:+i,-i,先自增、减,再参与,先自增、减,再参与运算;运算;后置运算:后置运算:i+,i-,先参与运算,先参与运算, 再自增、再自增、减。减。例如:例如:i=3,分析分析j=+i; j=i+;自增、减运算符不能用于常量或表达式。自增、减运算符不能用于常量或表达式。C语言第二章数据类型、运算符与表达式五、表达式使用中的问题:五、表达式使用中的问题: 1.表达式中子表达式的求值顺序;表达式中子表达式的求值顺序;2. C编译系统在处理时尽可能多地将若干字符编译系统在处

24、理时尽可能多地将若干字符组成一个运算符(在处理标识符、关键字组成一个运算符(在处理标识符、关键字时也按同一原则处理);时也按同一原则处理);3. 调用函数时,实参的求值顺序。调用函数时,实参的求值顺序。 C语言第二章数据类型、运算符与表达式2.9 赋值运算和赋值表达式一、赋值运算符一、赋值运算符 赋值符号赋值符号“=”就是赋值运算符就是赋值运算符 二、类型转换二、类型转换 赋值运算时,当赋值运算符两边数据类型赋值运算时,当赋值运算符两边数据类型不同时,先将赋值号右边表达式类型转换不同时,先将赋值号右边表达式类型转换为左边变量的类型,然后赋值。为左边变量的类型,然后赋值。C语言第二章数据类型、运

25、算符与表达式1.实型数据赋给整型变量实型数据赋给整型变量2. 整型数据赋给实型变量整型数据赋给实型变量3.单双精度常量赋值给实型变量单双精度常量赋值给实型变量4.字符型赋给整型变量字符型赋给整型变量5.整型数据赋给字符型变量整型数据赋给字符型变量C语言第二章数据类型、运算符与表达式三、复合的赋值运算符三、复合的赋值运算符“=”之前加上其他二元运算符,构成复合的运之前加上其他二元运算符,构成复合的运算符算符a+=3;对应于对应于a=a+3;四、赋值表达式四、赋值表达式变量变量=表达式表达式将赋值运算符右侧的将赋值运算符右侧的“表达式表达式”的值赋给左侧的的值赋给左侧的变量,赋值表达式的值就是被赋值的变量变量,赋值表达式的值就是被赋值的变量的值的值C语言第二章数据类型、运算符与表达式

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号