三章数据类型运算符和表达式

上传人:沈*** 文档编号:146873089 上传时间:2022-09-01 格式:PPT 页数:48 大小:369.02KB
收藏 版权申诉 举报 下载
三章数据类型运算符和表达式_第1页
第1页 / 共48页
三章数据类型运算符和表达式_第2页
第2页 / 共48页
三章数据类型运算符和表达式_第3页
第3页 / 共48页
资源描述:

《三章数据类型运算符和表达式》由会员分享,可在线阅读,更多相关《三章数据类型运算符和表达式(48页珍藏版)》请在装配图网上搜索。

1、1第三章第三章 数据类型、运算符和表达式数据类型、运算符和表达式23.1 C3.1 C语言数据类型语言数据类型3.1.1 C语言数据类型语言数据类型 整型 字符型 实型(浮点型)枚举类型 数组 结构体类型 共用体类型 单精度型双精度型基本类型构造类型指针类型空类型数据类型33.1 C的数据类型的数据类型整型字符型实型(浮点型)枚举类型单精度型双精度型数组类型结构体类型共用体类型构造类型基本类型指针类型空类型数据类型43.2 3.2 常量与变量常量与变量3.2.1常量常量1.定义:定义:在程序执行期间,其值不可改变的量称为常量在程序执行期间,其值不可改变的量称为常量2.类型:类型:数值常量数值常

2、量 例如:例如:10,3,2.68等等符号常量符号常量 即用一个符号代表一个常量即用一个符号代表一个常量 例如例如:#define PI 3.1415926 main()float r,l,s;r=2;l=2*PI*r;s=PI*r*r;printf(“l=%d,s=%d”,l,s);5说明:说明:符号常量必须符号常量必须先定义先定义后才能用它表示一后才能用它表示一个数值。个数值。符号常量的值在其作用域内不能改变,符号常量的值在其作用域内不能改变,也不能再被赋值。也不能再被赋值。符号常量名习惯用符号常量名习惯用大写大写字母表示。字母表示。63.2.2变量变量1.定义:定义:程序执行期间值可以改

3、变的量。2.命名规则命名规则:变量名由标识符表示,只能由字母字母、数字数字和下划线下划线三种字符组成,且第一个字符必须为字母字母或下划线下划线。例如:下列标识符中,不合法的变量名有:M.D.John ,12%gf ,1add,_ce36 ,age&5thclass,lotus-1-2-3,cd*ef,float3.变量要变量要“先定义,后使用先定义,后使用”定义格式:定义格式:类型说明符类型说明符 标识符标识符1,1,标识符标识符n n 例如:int x,y,z;(每个变量分配 2个 字节)float a,b,c,d;(每个变量分配 4个 字节)3a7在在C语言中,变量必须强制定义,其目的:语

4、言中,变量必须强制定义,其目的:1、凡未被事先定义的,不作为变量名。2、每一个变量被指定为一确定的类型,在编译时就能为 其分配相应的存储单元。3、指定每一个变量为一确定的类型,在编译时据此检查 该变量所进行的运算是否合法。例如:如果变量 a,b 是整型类型,则可以进行求余运算:a%b 而两个实数类型的变量求余是不允许的。8*选变量名时,要做到“见名知意”例如:name st_age xm nl class sum*大小写字母是两个不同的字符,C变量名习惯 用小写小写字母表示。*建议变量名的长度不要超过8个字符。请请 注注 意意93.33.3整型数据整型数据3.3.1整型常量的表示法整型常量的表

5、示法十进制整数十进制整数:由数字(0-9)和正负号表示 例如:123、-456、0 等八进制整数八进制整数:以0开头数是八进制数 例如:0123 即(123)8=(83)10 (123)8=182+2 81+3 80=(83)10十六进制整数十六进制整数:以0 x或0X开头,例如:0 x123 即(123)16=(291)10 -0 x12 即(-12)16=(-18 )10103.3.2 整型变量整型变量1.整型数据在内存中的存放形式(补码表示法:便于加减运算)整型数据在内存中的存放形式(补码表示法:便于加减运算)int i;i=10;10=(1010)2 2102522210余数0101首

6、位0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 00 0 0 0 0 0 0 0 0 0 0 0 1 0 1 01 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 010的原码取反取反后再加1,得-10的补码10的表示法的表示法,正数的补码等于它的原码正数的补码等于它的原码-10112整型变量的分类整型变量的分类 基本型:以 intint 表示 短整型:以 short intshort int 或 shortshort 表示 1.类型 长整型:以 long intlong int 或 longlong 表示

7、(123l、123L)无符号基本型(unsigned intunsigned int)无符号型 无符号短整型(unsigned shortunsigned short)无符号长整型(unsigned longunsigned long)(-3276832767)一个无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围扩大一倍。int a;/*变量a 的数值范围:-3276832768 */unsigned int b;/*变量b的数值范围:065535 */12 整整型变量的字长型变量的字长short型型 字长字长16位(位(2个字节)个字节)。long 型型 字长字长32位(位(4

8、个字节)个字节)。int 型型 随编译程序而定(可以是随编译程序而定(可以是2个字节,也可以个字节,也可以是是4个字节)个字节)C要求要求 long型数据长度不短于型数据长度不短于int型,型,short型不长于型不长于int型。型。(short=int2 逻辑表达式,如:逻辑表达式,如:35&a=b 条件表达式,如:条件表达式,如:ab?a:b 逗号表达式,如:逗号表达式,如:a=3,b=4,c=5313.83.8算术运算符和算术表达式算术运算符和算术表达式1、基本的算术运算符、基本的算术运算符:+-*/%说明:()上述运算符均为双目运算符(即有两个操作数)(2)在“”运算中,若操作数均为整

9、数,则执行整除运算,舍去小数部分。例如:5/3=(3)“”要求两侧均为整数,“”运算不能用于float 和 double型数据例如:2322 2、算术表达式和运算符的优先级与结合性、算术表达式和运算符的优先级与结合性(1)算术表达式:用算术运算符和括号将操作数连接起来的,符合语法规则的式子。例如:a+b+a*b/c+2.8(2)优先级:优先级:高于(3)结合性结合性:“自左至右的结合方向”例如:a-b+c3 3、强制类型转换、强制类型转换形式:(类型名)(表达式)例如:(double)(a+b)33说明:()表达式应用括号括起例如:(int)(x+y);若要得到x/2的小数部分,应写为:(fl

10、oat)x/2 还是 float(x/2)()在强制类型转换时,得到一个所需类型的中间变量,原来变量类型未发生变化。例如:float x=8.6 ;int y;y=(int)x;34请看下面程序段请看下面程序段:main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);输出结果输出结果:x=3.600000,i=3注意:强制类型转换后并不改变原来变量的类型注意:强制类型转换后并不改变原来变量的类型354、自增、自减运算符(、)、自增、自减运算符(、)作用:作用:使变量的值增或减,如:i,i (使用之前,先使i的值加(减)1)i,i (

11、使用之后,使i的值加(减)1)+i 先执行i=i+1,再使用i的值 i+先使用i的值,再执行i=i+1例如:int a=1,b;b=+a ;b=a+;举例:举例:int j,i=3;j=+i;/*j的值为的值为4,i为为4*/j=i+;/*j的值为的值为4,然后然后i的值变为的值变为5*/j=-i+;/*j的值的值-5,然后,然后i的值变为的值变为6*/36说明:(1)为单目运算符(2)+、只能用于变量,而不能用于常量或表达式。例如:,(,(x+y)+x+y)+,+a,b+,+a,b+中合法的为:(3)自增、自减运算符为右结合性(即自右至左)。例如:a+(a+)4、自增、自减运算符(、)、自增

12、、自减运算符(、)错误的结合(错误的结合(-a)+37练习题练习题1.设a=2,则执行语句 k=+a+a+后的 k值为多少?(k=6,a=4)2.a=(i+)+(i+)+(i+)?3.printf(“%d,%d”,i,i+)?请避免这种写法383.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式1、赋值运算符(赋值运算符(=)形式:变量名=常量或表达式作用:将右边常量或表达式的值赋给左边的变量例如:b=c+d 要求要求:如果表达式类型与左边的变量的类型不:如果表达式类型与左边的变量的类型不 匹配,自动进行类型转换。匹配,自动进行类型转换。392、类型转换的原则、类型转换的原则(1)将实

13、型数据赋给整型变量时将实型数据赋给整型变量时,舍弃实数的小数部分舍弃实数的小数部分 如:若如:若a为为int型变量,型变量,执行执行a=3.56后,则后,则a的值的值3 (2)将整型数据赋给实型数据时将整型数据赋给实型数据时,数值不变数值不变,但以浮点但以浮点 形式存储到变量中。形式存储到变量中。如:若如:若b为为float型变量,执行型变量,执行b=35后,则后,则b为为35.00000(3)整型数据赋给字符型变量时整型数据赋给字符型变量时,只将低只将低8位原封位原封不动地送到字符变量中(即截断)。不动地送到字符变量中(即截断)。0010 00010000 0001 0010 0001如:i

14、=289c=33 c=!40(4)字符型数据赋给整型变量时字符型数据赋给整型变量时,将字符数据将字符数据(8位位)放到整型变量低放到整型变量低8位中。高位中。高8位则需要依据位则需要依据“符符号扩展号扩展”来决定。来决定。例1(无符号字符数据赋给整型变量)unsigned char c;int i;c=254;i=c;1111 1110c=254i=254 0000 0000 1111 1110例2(Turbo C 系统把字符处理为带符号的)char c;int i;c=254;i=c;/*变量c 以整数形式输出为-2 */1111 1110c=254i=-2 1111 1111 1111 1

15、11041(5)将带符号数据赋给长度相同的无符号型变量,将带符号数据赋给长度相同的无符号型变量,原样照赋。原样照赋。(6)double 赋给赋给 float 时,截取前面时,截取前面7位有效数字。位有效数字。42例3:(带符号int型数据赋给long型变量)int a;long b;a=254;b=a;0000 0000 0000 0000 0000 0000 1111 1110a=254 0000 0000 1111 1110b=254 例4:(带符号int型数据赋给long型变量)int a;long b;a=-2;b=a;1111 1111 1111 1111 1000 0000 111

16、1 1110a=-2 1111 1111 1111 1110b=-2 43例5:(无符号int型数据赋给long型变量)unsigned int a;long b;a=65534;b=a;0000 0000 0000 0000 1111 1111 1111 1110a=65534 1111 1111 1111 1110b=65534 例6:(有符号数据赋给无符号变量)int a;unsigned int b;a=-2;b=a;1111 1111 1111 1110a=-2 1111 1111 1111 1110b=65534 44P66(3.11)写出下面赋值的结果。格中写了数值的是要将它赋给

17、其它类型的变量,将所有空格添上赋值后的数值。int 9 9 100 76 53 68 42 -1char c d L 5 D *X unsigned int 99 100 76 53 68 42 65535float 99.000000 100.000000 76.000000 53.65 68.000000 42.000000 65535.000000long int 99 100 76 53 68 42 65535453、复合赋值运算符、复合赋值运算符复合赋值运算符:在赋值符“=”之前加上其它运算符共有10种复合赋值运算符 +=,=,&,=,|=46例如:a+=3 a=a+3 x*=y+3

18、 x=x*(y+3)4、赋值表达式赋值表达式定义:由赋值运算符将一个变量和一个表达式连接起来的式子式子。形式:变量变量=表达式表达式说明:赋值表达式的值为被赋值的变量的值。赋值表达式的值为被赋值的变量的值。例如:a=b=c=6 a=(b=4)+(c=6)a=(b=4)*(c=6)47 练习:写出顺序执行下列表达式运算后的x值:1.x=a=b=10 2.x=25%(c=3)X=10X=1赋值表达式中可以包含复合赋值运算符 例如:若a=12,计算表达式a+=a=a*a运算后a的值 第一步:aa*a a=a-a*a=12-12*12=-132 第二步:a+=-132 a=a+(-132)=-264483.10 3.10 逗号运算符和逗号表达式逗号运算符和逗号表达式1.逗号运算符逗号运算符:即“,”优先级优先级:为所有运算符中级别最低的。2.逗号表达式逗号表达式 形式:表达式表达式1 1,表达式,表达式2 2,表达式,表达式n n 求解过程:顺次求解表达式1,表达式2 最后求解表达式n。逗号表达式的值为表达式表达式n n的值。的值。例如:a=3a=3*5,a5,a*4 4 a=3 a=3*5,a5,a*4,a+54,a+5 x=(a=4%3,a+1,a*10)602010

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!