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

上传人:桔**** 文档编号:568782783 上传时间:2024-07-26 格式:PPT 页数:48 大小:354KB
返回 下载 相关 举报
三章节数据类型运算符和表达式_第1页
第1页 / 共48页
三章节数据类型运算符和表达式_第2页
第2页 / 共48页
三章节数据类型运算符和表达式_第3页
第3页 / 共48页
三章节数据类型运算符和表达式_第4页
第4页 / 共48页
三章节数据类型运算符和表达式_第5页
第5页 / 共48页
点击查看更多>>
资源描述

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

1、第三章第三章 数据类型、运算符和表达式数据类型、运算符和表达式耸闽令葛弗怪粪恰旺畜蹋誊缔庄戴或矩故力姚阜青筋编最浸腾颠甜侮薛图三章节数据类型运算符和表达式三章节数据类型运算符和表达式13.1 C3.1 C语言数据类型语言数据类型3.1.1 C语言数据类型语言数据类型 整型 字符型 实型(浮点型) 枚举类型 数组 结构体类型 共用体类型 单精度型双精度型基本类型构造类型指针类型空类型数据类型蚊纲镰轻宠侍隶伎冉陡苹舵林拓花赴幕渣仁柜贿赠轴高攀对游滔竿厄俐竣三章节数据类型运算符和表达式三章节数据类型运算符和表达式23.1 C的数据类型的数据类型整型字符型实型(浮点型)枚举类型单精度型双精度型数组类型

2、结构体类型共用体类型构造类型基本类型指针类型空类型数据类型湘募淡汀虑勉本手遗罐坟晃返弦农儒哇萨脑卤匿培愈苯汛边虐凡垄傣匠旅三章节数据类型运算符和表达式三章节数据类型运算符和表达式33.2 3.2 常量与变量常量与变量3.2.1常量常量1.定义:定义:在程序执行期间,其值不可改变的量称为常量在程序执行期间,其值不可改变的量称为常量2.类型:类型:数值常量数值常量 例如:例如:10,3 , 2.68等等符号常量符号常量 即用一个符号代表一个常量即用一个符号代表一个常量 例如例如: #define PI 3.1415926 main( ) float r,l,s; r=2; l=2*PI*r;s=P

3、I*r*r; printf(“l=%d, s=%d”, l,s); 至铝呀日孙展吮捷卞晶护讲医涵画枪夸敢赂兵堕枕址戈痊认恢给昂醚餐涸三章节数据类型运算符和表达式三章节数据类型运算符和表达式4说明:说明:符号常量必须符号常量必须先定义先定义后才能用它表示一后才能用它表示一个数值。个数值。符号常量的值在其作用域内不能改变,符号常量的值在其作用域内不能改变,也不能再被赋值。也不能再被赋值。符号常量名习惯用符号常量名习惯用大写大写字母表示。字母表示。贯尹猪冯巳砸逞管惩虐弄组暮谋窝逾钠呛痉嘘枕旭梳严别林斋碍苔骡虎鞍三章节数据类型运算符和表达式三章节数据类型运算符和表达式53.2.2变量变量1. 定义:定

4、义:程序执行期间值可以改变的量。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;

5、 (每个变量分配 4个 字节)3a糯扳整厚淑逛滑淀粒跌尘纹渴平潍明陷继十屁侵猿咏炎赃汉萤捕鳞枷葵丛三章节数据类型运算符和表达式三章节数据类型运算符和表达式6在在C语言中,变量必须强制定义,其目的:语言中,变量必须强制定义,其目的:1、凡未被事先定义的,不作为变量名。2、每一个变量被指定为一确定的类型,在编译时就能为 其分配相应的存储单元。3、指定每一个变量为一确定的类型,在编译时据此检查 该变量所进行的运算是否合法。 例如:如果变量 a,b 是整型类型,则可以进行求余运算: a%b 而两个实数类型的变量求余是不允许的。纯崖钎尖济疵瞪畦剿昌亥炭氢籽喻敲茵蝗笨总谜芭省奄级威衬狮刃萧茶信三章节数据类

6、型运算符和表达式三章节数据类型运算符和表达式7* 选变量名时,要做到“见名知意” 例如:name st_age xm nl class sum* 大小写字母是两个不同的字符,C变量名习惯 用小写小写字母表示。* 建议变量名的长度不要超过8个字符。请请 注注 意意壕辙朽祷忙疽空抹叁开业扁譬哎薛粟侣照勘畏狞享驮阳捶悠啤摔憾充湿氯三章节数据类型运算符和表达式三章节数据类型运算符和表达式83.33.3整型数据整型数据3.3.1整型常量的表示法整型常量的表示法十进制整数十进制整数 :由数字(0-9)和正负号表示 例如:123、-456、0 等八进制整数八进制整数:以0开头数是八进制数 例如: 0123

7、即(123)8 =( 83) 10 (123) 8=182+2 81+3 80 =( 83) 10十六进制整数十六进制整数:以0x或0X开头, 例如: 0x123 即 (123) 16 =( 291) 10 -0x12 即 (-12) 16 =( -18 ) 10炬菠鳃松腐求炼症涵肇坊碧术划肠侨拿痢秒函潘啡另去花乱厄供速句收景三章节数据类型运算符和表达式三章节数据类型运算符和表达式93.3.2 整型变量整型变量1.整型数据在内存中的存放形式(补码表示法:便于加减运算)整型数据在内存中的存放形式(补码表示法:便于加减运算)int i;i=10; 10=(1010)2 2102522210余数01

8、01首位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的表示法的表示法,正数的补码等于它的原码正数的补码等于它的原码-10葛个涛鹤载防枫沏悔仓选蝎眩炮燃颜雅槐拇跌犬睁贮蜀屑综慕糯豹测蛰众三章节数据类型运算符和表达式三章节数据类型运算符和表达式102整型变量的分类整型变量的分类 基本型:以 intint 表示 短整型:以 short intshort

9、 int 或 shortshort 表示 1.类型 长整型:以 long intlong int 或 longlong 表示 (123l、 123L) 无符号基本型(unsigned intunsigned int) 无符号型 无符号短整型(unsigned shortunsigned short) 无符号长整型(unsigned longunsigned long)(-3276832767)一个无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围扩大一倍。int a; /* 变量a 的数值范围: -3276832768 */unsigned int b; /* 变量b的数值范围:0

10、65535 */葡职悼瘫步嘱镜乡涧别赃唬魄萎幻陆呼刻挺牡威秘捻待饲爬赵呆各擎浦遭三章节数据类型运算符和表达式三章节数据类型运算符和表达式11 整整型变量的字长型变量的字长short型型 字长字长16位(位(2个字节)个字节)。long 型型 字长字长32位(位(4个字节)个字节)。 int 型型 随随编编译译程程序序而而定定(可可以以是是2个个字字节节,也也可可以以是是4个字节)个字节)C要求要求 long型数据长度不短于型数据长度不短于int型,型, short型不长于型不长于int型。型。( short=int2 逻辑表达式,如:逻辑表达式,如:35&a=b 条件表达式,如:条件表达式,如

11、:ab?a:b 逗号表达式,如:逗号表达式,如:a=3,b=4,c=5沉扬歉欧塞洁启建婆敏产疹硷星汤葵沸汾弊呵溪炔健协谊蜕臂虱愧喷镰藕三章节数据类型运算符和表达式三章节数据类型运算符和表达式303.83.8算术运算符和算术表达式算术运算符和算术表达式1、基本的算术运算符、基本的算术运算符: + - * / %说明:()上述运算符均为双目运算符(即有两个操作数)(2)在“”运算中,若操作数均为整数,则执行整除运算,舍去小数部分。例如:5/3=(3)“”要求两侧均为整数,“”运算不能用于float 和 double型数据例如:2区赡柯腥御炯国著淮扣脊炒茂勤扩兔擦铸壮大弟课寞继江狭唾卓疑佣尾阻三章节

12、数据类型运算符和表达式三章节数据类型运算符和表达式312 2、算术表达式和运算符的优先级与结合性、算术表达式和运算符的优先级与结合性(1)算术表达式:用算术运算符和括号将操作数连接起来的,符合语法规则的式子。 例如: a + b + a*b/c +2.8(2)优先级:优先级:高于(3)结合性结合性: “自左至右的结合方向” 例如:a - b + c3 3、强制类型转换、强制类型转换形式:(类型名)(表达式)例如:( double) (a+b)羹刽坐炸逞绵邑汤勋换慌伤聚抵剪代韶谎陨昧搞憾唇霉驮哭糟念鹃琶颐未三章节数据类型运算符和表达式三章节数据类型运算符和表达式32说明:()表达式应用括号括起例

13、如:(int)(x+y) ; 若要得到x/2的小数部分,应写为: (float)x/2 还是 float (x/2)()在强制类型转换时,得到一个所需类型的中间变量,原来变量类型未发生变化。例如:float x=8.6 ; int y; y=(int)x ;烙焙疾狼渗池灯溅凋验盟兵乘懂垣蔑榨阎旱沼待剥肾他镣过凝贴墨夫被糜三章节数据类型运算符和表达式三章节数据类型运算符和表达式33请看下面程序段请看下面程序段: main( ) float x; int i; x=3.6; i=(int)x; printf(“x=%f, i=%d”,x,i);输出结果输出结果: x=3.600000, i=3注意

14、:强制类型转换后并不改变原来变量的类型注意:强制类型转换后并不改变原来变量的类型泼莽啼饼郸贷芥眉贬砒赛哉靴罚惭洲屏牲逆喇玩积拟相哦惕琴守六罐摹遮三章节数据类型运算符和表达式三章节数据类型运算符和表达式344、自增、自减运算符(、)、自增、自减运算符(、)作用:作用:使变量的值增或减,如:i , i (使用之前,先使i的值加(减)1)i, i (使用之后,使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

15、+; /*j的值为的值为4,然后然后i的值变为的值变为5 */ j=-i+; /*j的值的值-5,然后,然后i的值变为的值变为6 */练嫂崎哮越市隶及尾淌友见襟帛皑酿猛婆嘿窟私驳酱锰校答痞树葬吾誊燥三章节数据类型运算符和表达式三章节数据类型运算符和表达式35说明:(1)为单目运算符(2)+ 、只能用于变量,而不能用于常量或表达式。 例如:,(,(x+y)+x+y)+,+a, b+ ,+a, b+ 中合法的为:(3)自增、自减运算符为右结合性(即自右至左)。例如:a+ (a+) 4、自增、自减运算符(、)、自增、自减运算符(、)错误的结合(错误的结合(-a)+乘傀囱霞浩否锁杯貉妙洗颤衰胖蔫孺朽应

16、检疲律贸漓匝冤馈墨洋咳姬壮舷三章节数据类型运算符和表达式三章节数据类型运算符和表达式36练习题练习题1.设a=2, 则执行语句 k=+a+a+ 后的 k值为多少?(k=6, a=4)2.a=(i+)+(i+)+(i+) ?3.printf(“%d,%d”,i, i+) ? 请避免这种写法响胞闽影膝巫联色抠健综荷休伦雁芝蓝酪敢尊殆惨绩马厕吉货噎抛碉辆僵三章节数据类型运算符和表达式三章节数据类型运算符和表达式373.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式1、 赋值运算符(赋值运算符(=)形式:变量名=常量或表达式作用:将右边常量或表达式的值赋给左边的变量例如: b=c+d 要求要

17、求:如果表达式类型与左边的变量的类型不:如果表达式类型与左边的变量的类型不 匹配,自动进行类型转换。匹配,自动进行类型转换。 炽兜双择人婴晴电忿疟框蜗净棕慨马赛霖苑爹退蔑表烹疗孰席说粥雅醇挛三章节数据类型运算符和表达式三章节数据类型运算符和表达式382、类型转换的原则、类型转换的原则(1) 将实型数据赋给整型变量时将实型数据赋给整型变量时,舍弃实数的小数部分舍弃实数的小数部分 如:若如:若a为为int型变量,型变量, 执行执行a=3.56后,则后,则a的值的值3 (2) 将整型数据赋给实型数据时将整型数据赋给实型数据时,数值不变数值不变,但以浮点但以浮点 形式存储到变量中。形式存储到变量中。

18、如:若如:若b为为float型变量,执行型变量,执行b=35后,则后,则b为为35.00000(3) 整型数据赋给字符型变量时整型数据赋给字符型变量时, 只将低只将低8位原封位原封不动地送到字符变量中(即截断)。不动地送到字符变量中(即截断)。0010 00010000 0001 0010 0001如:i=289c=33 c=!镰蹄林档喷镀撇峙椰宝痞探腋纹嗡强百融嗡臣间陵哥娶犁冻贼用狼也湘哩三章节数据类型运算符和表达式三章节数据类型运算符和表达式39(4) 字符型数据赋给整型变量时字符型数据赋给整型变量时, 将字符数据将字符数据(8位位)放到整型变量低放到整型变量低8位中。高位中。高8位则需要

19、依据位则需要依据“符符号扩展号扩展”来决定。来决定。例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 1110额窥抢善辨勿慎倡设注黄垃谭仿弱弥郝饶巨力磋侗单拖兼钮蜕翔篮沽岛檄三章节数据类型运算符和表达式三章节数据类型运算符和表达式40(5) 将带符号

20、数据赋给长度相同的无符号型变量,将带符号数据赋给长度相同的无符号型变量, 原样照赋。原样照赋。(6)double 赋给赋给 float 时,截取前面时,截取前面7位有效数字。位有效数字。共苹诲牺鉴右狗总免彬舅佯岂蜘扩责郑争锰纷籽添殴虐蛔宜锅想惧淌芜嵌三章节数据类型运算符和表达式三章节数据类型运算符和表达式41例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型变量) i

21、nt a; long b; a=-2; b=a;1111 1111 1111 1111 1000 0000 1111 1110a=-2 1111 1111 1111 1110b=-2 哎瞥讥罚锰屿獭技诫酗顾趣涵歧丸锌窒邢汤曳款骤颤猜廊袋溢滓烈毡檬诲三章节数据类型运算符和表达式三章节数据类型运算符和表达式42例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: (有符号数据

22、赋给无符号变量) int a; unsigned int b; a=-2; b=a;1111 1111 1111 1110a=-2 1111 1111 1111 1110b=65534 收讯疙渠罩燎民坠驳娇绅碌母脖酷晰欧聪叼囤熏被甲仓培垂袋踌弛望颓雀三章节数据类型运算符和表达式三章节数据类型运算符和表达式43P66 (3.11) 写出下面赋值的结果。格中写了数值的是要将它赋给其它类型的变量,将所有空格添上赋值后的数值。int 9 9 100 76 53 68 42 -1char c d L 5 D * X unsigned int 99 100 76 53 68 42 65535float 9

23、9.000000 100.000000 76.000000 53.65 68.000000 42.000000 65535.000000long int 99 100 76 53 68 42 65535形庸臀档蹭靡胁憎废射菩阎督姥床胰碾马天学捧放迷遵遂细硝司删词曹丑三章节数据类型运算符和表达式三章节数据类型运算符和表达式443、复合赋值运算符、复合赋值运算符复合赋值运算符:在赋值符“=”之前加上其它运算符共有10种复合赋值运算符 += ,=, ,&, =, |=鲜猖饼阉滞韭舔企耽嗜沮光尧属孟狈省例析明蝴菠吞队疑拯怕蛋嘎耽践炙三章节数据类型运算符和表达式三章节数据类型运算符和表达式45例如:a+

24、=3 a=a+3 x*=y+3 x=x*(y+3)4、 赋值表达式赋值表达式定义:由赋值运算符将一个变量和一个表达式连接起来的式子式子。形式: 变量变量 = 表达式表达式说明: 赋值表达式的值为被赋值的变量的值。赋值表达式的值为被赋值的变量的值。例如:a=b=c=6 a=(b=4)+(c=6) a=(b=4)*(c=6)爪淋加养呢六亏抡痛二眠彼欢啥跨咽座邀况闽棋怀嚏绚讣肾赐翱秉鲸于盆三章节数据类型运算符和表达式三章节数据类型运算符和表达式46练习:写出顺序执行下列表达式运算后的x值: 1. x=a=b=10 2. x=25%(c=3) X=10X=1赋值表达式中可以包含复合赋值运算符 例如:若

25、a=12,计算表达式a+=a=a*a运算后a的值 第一步:aa*a a=a-a*a=12-12*12=-132 第二步:a+=-132 a=a+(-132)=-264巍张惭讹坦羚匡我抠豹傣家孜涨魄傍芬菱惺轴挫否备粘割思巧署巳空氰唤三章节数据类型运算符和表达式三章节数据类型运算符和表达式473.10 3.10 逗号运算符和逗号表达式逗号运算符和逗号表达式1.逗号运算符逗号运算符:即“,”优先级优先级:为所有运算符中级别最低的。2.逗号表达式逗号表达式 形式:表达式表达式1 1,表达式,表达式2 2,表达式,表达式n n 求解过程:顺次求解表达式1,表达式2 最后求解表达式n。逗号表达式的值为表达式表达式n n的值。的值。例如:a=3*5,a*4a=3*5,a*4 a=3*5,a*4,a+5 a=3*5,a*4,a+5 x=(a=4%3 , a+1, a*10)602010盒岂昆铁衫谆烫面棋锋豌借易澳鼻疵鹏且栓媳冲矢铝档辙醉圃窃鹅钻绷远三章节数据类型运算符和表达式三章节数据类型运算符和表达式48

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

最新文档


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

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