第3章数据类型运算符

上传人:pu****.1 文档编号:567497065 上传时间:2024-07-20 格式:PPT 页数:56 大小:274KB
返回 下载 相关 举报
第3章数据类型运算符_第1页
第1页 / 共56页
第3章数据类型运算符_第2页
第2页 / 共56页
第3章数据类型运算符_第3页
第3页 / 共56页
第3章数据类型运算符_第4页
第4页 / 共56页
第3章数据类型运算符_第5页
第5页 / 共56页
点击查看更多>>
资源描述

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

1、第三章 数据类型、运算符与表达式变量,命名规则,基本类型变量,命名规则,基本类型表达式表达式赋值运算符和算术运算符赋值运算符和算术运算符自增、自减运算符自增、自减运算符剧呆妥熙刁种泌迄枚敌朋集岛的迭颐篷者稗摩烯粟纷煌照睁掸吠聋嗡疗委第3章数据类型运算符第3章数据类型运算符7/20/20241c语言3.1 C语言的数据类型语言的数据类型数据类型数据类型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型(void)整型整型 (int)字符型字符型(char) 浮点型浮点型数组类型数组类型结构体类型结构体类型(struct)共用体类型(联合类型)共用体类型(联合类型)(union)枚举类型

2、枚举类型单精度型单精度型(float)双精类型双精类型(double)C中数据有中数据有常量常量与与变量变量之分之分填面挞周维簿劣蛀屏涌曳瞅落类周烈赔罪秤咨雀毯静敖寅沙摈仗挖积呛爽第3章数据类型运算符第3章数据类型运算符7/20/20242c语言标识符标识符l定义:用来标识变量、符号常量、函数、数组等的字符序定义:用来标识变量、符号常量、函数、数组等的字符序 列,即标识符就是一个名字。列,即标识符就是一个名字。l注意:注意:只能由只能由字母、数字、下划线字母、数字、下划线组成,且第一个字符必须是组成,且第一个字符必须是字母或下划线字母或下划线如:如:sun,PI,_sysflag,Number

3、_of_moversun,PI,_sysflag,Number_of_mover等等3.2 常量与变量常量与变量而下面的标识符是不合法的而下面的标识符是不合法的 piece flag 5-6-7 $32.56敲冰惯仪晶云吏咳瘸痉堂郁卢畏肩秀烟梆箭趟扼的武脖险黎耙实庐毛咱弛第3章数据类型运算符第3章数据类型运算符7/20/20243c语言大小写字母是不同的字符大小写字母是不同的字符如:如:sum sum 和和 SUM SUM是不同的变量名。变量名用小写字母表示。是不同的变量名。变量名用小写字母表示。语言中标识符的长度。语言中标识符的长度。( (建议不超过建议不超过8 8个字符)个字符)见名知意,

4、如:见名知意,如:total, day, classtotal, day, class不宜混淆不宜混淆 如如l l与与I, oI, o与与0 0不能使用不能使用C C语言中的关键字语言中的关键字捍迄釉篡闽筹寡寸沧羚渐私嘘刊呢庞弦粗惮环岭邯另柞卞部读旱暮氮耳傣第3章数据类型运算符第3章数据类型运算符7/20/20244c语言l常量常量( (常数常数) );在程序运行过程中,其值不能被改变在程序运行过程中,其值不能被改变的量称为常量。(的量称为常量。(3 3,AA)l符号常量符号常量:用用标识符标识符表示的常量称为符号常量。习表示的常量称为符号常量。习惯上,符号常量名用大写。(惯上,符号常量名用大

5、写。(#define PRICE 30#define PRICE 30)P38 P38 例例3.13.1常量常量侣翅趁袄遗著委吊诽便骑腊垦更手惧缎赛首受樊宰赋降俩钡逊窜狰蛔钉式第3章数据类型运算符第3章数据类型运算符7/20/20245c语言变量变量变量代表内存中具有特定属性的一个内存单元,变量代表内存中具有特定属性的一个内存单元,用来存放数据,即变量的值,在程序运行过程用来存放数据,即变量的值,在程序运行过程中,其值可以改变。中,其值可以改变。 随储栈窿虾李搅娱念阶殉朗棍呵边瞻碴碍篮摈腺涝屡段耕闸似啃监希埃脂第3章数据类型运算符第3章数据类型运算符7/20/20246c语言变量变量 例如:a

6、=3v编译时,由系统给每一个变量名分配对应的内存地址。从变量中取值,是通过变量名找到相应的内存地址,从该存储单元中读取数据。3a变量名变量值存储单元挝质击华壁远粒椭萍辅江碱旬女掇檀填葬仓贾观真哄博审陛筐密樊券警掌第3章数据类型运算符第3章数据类型运算符7/20/20247c语言l变量定义的一般格式: 数据类型 变量1,变量2,变量n;例: int a,b,c; float data;决定分配字节数和数的表示范围合法标识符变量的使用:先定义,后使用例1 int student; stadent=19; /Undefined symbol stadent in function main 变量定义

7、位置:一般放在函数开头main() int a,b; float data; a=1; b=2; data=(a+b)*1.2; printf(“data=%fn”,data);变量定义可执行语句驹层吭腮淮荚献引先搓诺臼乎彬撞诚肆王位葡但丙变六蜡兼丫井钝列缅吱第3章数据类型运算符第3章数据类型运算符7/20/20248c语言1.1.整型常量的表示方法整型常量的表示方法:十进制整数:由数字十进制整数:由数字0909和正负号表示和正负号表示. .如如 123,-456,0 123,-456,0八进制整数:由数字八进制整数:由数字0 0开头开头, ,后跟数字后跟数字0707表示表示. .如如0123

8、,0110123,011 0123 1*82+2*81+3*80十六进制整数:由十六进制整数:由0x0x开头开头, ,后跟后跟09,af09,af或或AFAF表示表示. .如如0x12,0Xff0x12,0Xff 0x12 1*161+2*160 0Xff 0Xff 15* *161+15*1603.3 整型数据整型数据倍胃漂冠腥娜诊殖服胖女峪傈卞户炉觅劈哩屎疑郎提爽知刊茅昔绢炎敌兼第3章数据类型运算符第3章数据类型运算符7/20/20249c语言2.整型数据在内存中存放形式整型数据在内存中存放形式l数据在内存中是以数据在内存中是以二进制二进制的形式存放的的形式存放的l数值是以数值是以补码补码

9、表示的表示的l 正整数的补码正整数的补码:与其原码的形式同:与其原码的形式同 int a=10; 00000000 00000000 00000000 00001010 int a=10; 00000000 00000000 00000000 00001010 负整数的补码负整数的补码:该数的绝对值的二进制,按位取反加:该数的绝对值的二进制,按位取反加1 1 int a=-10; 00000000 00000000 00000000 00001010 int a=-10; 00000000 00000000 00000000 00001010 11111111 11111111 1111111

10、1 11110101 11111111 11111111 11111111 11110101 11111111 11111111 11111111 1111011011111111 11111111 11111111 11110110 在存放整数的存储单元中在存放整数的存储单元中,最左边的一位表示符号,最左边的一位表示符号,该位为该位为0数值为正,该位为数值为正,该位为1数值为负。数值为负。茨专烛左抽遗蒙氨娩矮削渠球杀页瘸乐楚失甄的谍亨岛评递电贸稀锚疙掺第3章数据类型运算符第3章数据类型运算符7/20/202410c语言2.整型数据在内存中存放形式整型数据在内存中存放形式Turbo C Tur

11、bo C 为一个整型变量(为一个整型变量(intint)在内存中分配)在内存中分配2 2个字节个字节的存的存储单元,储单元,Visual C+ 6.0Visual C+ 6.0为一个整型变量(为一个整型变量(intint)在内存中分配)在内存中分配4 4个字个字节节的存储单元的存储单元糟袍触摹州雁钢篇乘募圈旭交镊职俯艘言甘自兢淑瓣磊茄谗奢橡余伙抛膘第3章数据类型运算符第3章数据类型运算符7/20/202411c语言 整型变量的基本类型符为整型变量的基本类型符为intint,我们根据,我们根据数值在内存中占据空间的不同,将整型变量分数值在内存中占据空间的不同,将整型变量分为基本型、短整型、长整型

12、为基本型、短整型、长整型基本型:以基本型:以intint表示表示短整型:以短整型:以short intshort int或或shortshort表示表示长整型:以长整型:以long intlong int或或longlong表示表示无符号型:类型说明符为无符号型:类型说明符为unsignedunsigned 3.3.整型变量整型变量的分类的分类:如果不指定为如果不指定为unsignedunsigned,则默认为,则默认为signedsigned(此时(此时signedsigned可以不写)可以不写)符号类型符和其他三个基本类型组合共可得出符号类型符和其他三个基本类型组合共可得出6 6种整型变量

13、:种整型变量:挺制泳斤务吞鬼朽倘譬更伺涸固距嘴鹊瓢带贤措慕卓狭犁休像砧矩德瞅莽第3章数据类型运算符第3章数据类型运算符7/20/202412c语言有符号基本整型有符号基本整型 signed signed intint无符号基本整型无符号基本整型 unsigned intunsigned int有符号短整型有符号短整型 signed signed shortshort int int无符号短整型无符号短整型 unsigned shortunsigned short int int有符号长整型有符号长整型 signed signed longlong int int无符号长整型无符号长整型 uns

14、igned longunsigned long int int3.3.整型变量整型变量的分类的分类:音癣馆崎嫂灼屡亏昔壁伊茶混杏先糠际莲瞄撮筏般友积返遣畜秆雪褪癣状第3章数据类型运算符第3章数据类型运算符7/20/202413c语言3.3.整型变量整型变量的分类的分类:P43:P43表表3-13-1变量类型名变量类型名变量类型变量类型所占字节数所占字节数/ /比特(位)数比特(位)数数的范围数的范围整型整型 int int4/32-21474836482147483647 - -231(231-1)短整型短整型short short -3276832767-215(215-1) )长整型长整型

15、long long 4/32-21474836482147483647-231(231-1)无符号无符号整整型型unsigned int unsigned int 0 42949672950(232-1)无符号短整型无符号短整型unsigned shortunsigned short0655350216-1无符号长整型无符号长整型unsigned longunsigned long0 42949672950(232-1)2/162/164/324/32奠沂漾感臆嗜镀吭芦溜永拭渍彤靴啄尔逊瑶惩针页竖族铬迸滑冯迪赂辅薯第3章数据类型运算符第3章数据类型运算符7/20/202414c语言 int 0

16、1111111 11111111 11111111 11111111 231-1(最大)(最大) 10000000 00000000 00000000 00000000 -231 (最小)(最小)unsigned int 11111111 11111111 11111111 11111111 232-1(最大)(最大) 00000000 00000000 00000000 00000000 0(最小)(最小)膜妊碎赴叔楼硕哺忻痹外真娱劣两披丈椭挪西瞳篇晾陀摈闭却岔打甚洁吐第3章数据类型运算符第3章数据类型运算符7/20/202415c语言4.4.整型数据的溢出(例整型数据的溢出(例3.3 p4

17、43.3 p44)#includevoid main() int a,b; a=2147483647; b=a+1; printf(%dn,%dn,a,b);在在VC中,一个中,一个int型的变量的最大允许值是型的变量的最大允许值是2147483647,如果加,如果加1,会出现什,会出现什末情况?末情况?结果:2147483647-2147483648彰绽积潍胶太退镐祸纬司逝艳融龚盗崔昧吐妖交械具饿痊嫉同槽陶能井腋第3章数据类型运算符第3章数据类型运算符7/20/202416c语言 a= 2147483647, b=- 2147483648 为为什什么么a a加加1 1以以后后会会产产生生负负

18、值值呢呢? ?这这是是因因为为整整数数在在内内存存中中是是以以补补码码形形式式存存储储的的,最最高高位位是是符符号号位位,符符号号位位为为0 0时时表表示示正正数数,为为1 1时时表表示负数,而补码运算中符号位是参与运算的:示负数,而补码运算中符号位是参与运算的:a: 0 111111111111111111111111111111 + 1 b: 1 000000000000000000000000000000 符号位符号位 礁沃芥痉先戏象嘴坞阀枉眠啃绣谩澡苫反少堤轻腹犬淌所旱氧可惟讹蛰碗第3章数据类型运算符第3章数据类型运算符7/20/202417c语言 在在Visual C+ Visual

19、 C+ 中一个整型变量只能容纳中一个整型变量只能容纳 -2147483648-2147483648 21474836472147483647范围内的数,无范围内的数,无法表示大于法表示大于21474836472147483647或小于或小于-2147483648-2147483648的数。遇到例的数。遇到例3.33.3的情况就发生的情况就发生“溢出溢出”。但并不报错。但并不报错。珊撼瓢送褒冤绿蹋鳃赠摆搐悉沉篷桂处婆岁甫氛拷俯洁鲜珊舵希抖烈猜寨第3章数据类型运算符第3章数据类型运算符7/20/202418c语言浮点(floating point)型数据C语言中的浮点数即平常所说的实数。语言中的浮

20、点数即平常所说的实数。浮点型常量表示方法浮点型常量表示方法十进制十进制: 如:如:123.0 指数形式指数形式: 由由尾数尾数、e e或或E E、指数指数三部分组成三部分组成, , 尾数是一般形式的实数,指数为整数。尾数是一般形式的实数,指数为整数。 指数形式适于表示较大或较小的实数。指数形式适于表示较大或较小的实数。 例如例如123.456的指数形式可以是的指数形式可以是: :1.23456e2, 12.3456e1 等 沸垂孟疼全熊碉荚宾难糊炬岿箩乞铅看憎雇苍溉治咳斯屁胰兜车得釉阿叉第3章数据类型运算符第3章数据类型运算符7/20/202419c语言l注意:注意:字母字母e e(E E)之

21、前必须有数字,且)之前必须有数字,且e e(E E)后面必须为整数。)后面必须为整数。 以下是以下是合法合法的实数:的实数:2.1E5 (2.1E5 (等于等于2.1*102.1*105 5) )、3.7E-2 (3.7E-2 (等于等于3.7*103.7*10-2-2) )0.5E7 (0.5E7 (等于等于0.5*100.5*107 7) )、-2.8E-2 (-2.8E-2 (等于等于-2.8*10-2.8*10-2-2) ) 1e3.5,e3都不合法软亥葛加殷耳果庆叹哄药迢秦糟去脆阻兽嫩狠雄舌叮佰迷厅颈盅疵邻遮皂第3章数据类型运算符第3章数据类型运算符7/20/202420c语言2.

22、浮点型数据在内存中的存储形式浮点型数据在内存中的存储形式存储形式存储形式 如:如:3.14159 (使用十进制表示)(使用十进制表示) 符号符号小数部分小数部分(尾数尾数)指数指数+ .3 1 4 1 5 9 1喷瑚漳贾寅火膀禁撼滴装影滇务切某镜洲剁奖谓频苑坊摈活幼吐药戏忍至第3章数据类型运算符第3章数据类型运算符7/20/202421c语言 3. 3. 浮点型变量的分类浮点型变量的分类 浮浮 点点 型型 变变 量量 分分 单单 精精 度度 (float)(float)、 双双 精精 度度(double)(double)和和长长双双精精度度(long (long double)double),

23、它它们们的的长长度度、精度及取值范围如表精度及取值范围如表3232所示所示(p46)(p46)。类型比特(位)数比特(位)数有效数字数值范围float3267-3.410-383.41038double641516-1.710-3081.710308long double1281819-1.210-49321.2104932联渺葬闲寅题揉呼孟堰光奸觅熄蜘萍降享团玖店著窑尾仰瞳山村箱冀糟脐第3章数据类型运算符第3章数据类型运算符7/20/202422c语言 对每一个浮点型变量都应在使用前定义。对每一个浮点型变量都应在使用前定义。 例如:例如: float x,y; float x,y; doub

24、le z; double z; long double t; long double t;可灸由氮次攀闻运屹工剿剩触保厂辽拱派拭黄屋篆梧啄序良滦柳瘟伙揩哎第3章数据类型运算符第3章数据类型运算符7/20/202423c语言 一一个个浮浮点点型型变变量量只只能能保保证证有有效效数数字字7 7位位,后后面面的的数数字字是是无无意意义义的的,因因此此并并不不准准确确地地表表示示该该数。数。注意:注意:避免将一个很大的数和一个很小的数直避免将一个很大的数和一个很小的数直接相加或相减,否则会接相加或相减,否则会“丢失丢失”小的数。小的数。 豹缸盐衔拣衡卵股草沟犬咒藤士程斑腮赤缕啪雏鬃规赂绸舞屿瘤敌曳烟筐

25、第3章数据类型运算符第3章数据类型运算符7/20/202424c语言5.5.浮点型常量的类型浮点型常量的类型默认默认doubledouble型型 如语句:如语句: f= 2.45678 * 4523.65 f= 2.45678 * 4523.65; 编译系统先把这两个数作为双精度数,然后相编译系统先把这两个数作为双精度数,然后相乘,乘积也是一个双精度。乘,乘积也是一个双精度。 优点:优点:计算结果更精确;计算结果更精确; 缺点:缺点:运算速度降低。运算速度降低。在实型常量后加字母在实型常量后加字母f f或或F F,认为它是,认为它是float float 型型 如:如:1.65f, 654.8

26、7F1.65f, 654.87F,编译系统按单精度处理。,编译系统按单精度处理。 奄骋雷总出缔德慢登阜烁享牟批沤泌漂屋戍岩萤墅书伍斌慈汞地泄岸保惦第3章数据类型运算符第3章数据类型运算符7/20/202425c语言1.1.字符常量字符常量 字符常量是用字符常量是用单引号单引号括起来的一个字符括起来的一个字符例如:例如:aa、bb、=、+、?、 101101 字符常量的字符常量的特点特点:字符常量只能用单引号括起来,不能用双引号字符常量只能用单引号括起来,不能用双引号或其它括号或其它括号字符常量只能是单个字符,不能是字符串字符常量只能是单个字符,不能是字符串字符可以是字符集中任意字符(字符可以是

27、字符集中任意字符(P364 P364 附录附录A A) 字符型数据字符型数据烈楚秋疾柒沮穷舵灵者阀壳氨亚召民烛怒髓烦器延嫌褒春瞎惩锹掂着遵狐第3章数据类型运算符第3章数据类型运算符7/20/202426c语言一种特殊形式的字符常量,一种特殊形式的字符常量,“转义字符转义字符”转义字符转义字符: :反斜线反斜线后面跟一个字符或一个代码值表示后面跟一个字符或一个代码值表示例如:例如: nn 代表换行符代表换行符感射虎侧清郴革韧娥歼卸挝罕座侮忿鼠交蛹台脯拭烤稻惭汞荣洱伟联宝皂第3章数据类型运算符第3章数据类型运算符7/20/202427c语言常见的转义字符常见的转义字符字符形式字符形式含含 义义AS

28、CIIASCII代码代码nn换行,将当前位置移到下一行开头换行,将当前位置移到下一行开头1010tt水平制表(跳到下一个水平制表(跳到下一个tabtab位置)位置)9 9bb退格,将当前位置移到前一列退格,将当前位置移到前一列8 8反斜杠字符反斜杠字符“”“”9292单引号(撇号)字符单引号(撇号)字符3939”双引号字符双引号字符3434dddddd1 1到到3 3位位8 8进制数所代表的字符进制数所代表的字符xhhxhh1 1到到2 2位位1616进制数所代表的字符进制数所代表的字符攀攘目求档玲婆贷编展钮宝塘佩邑帛格样穗墟月捌滴烂参猜递何空莎像霸第3章数据类型运算符第3章数据类型运算符7/

29、20/202428c语言2.2.字符变量字符变量 字符变量用来存储字符常量,但只能存储字符变量用来存储字符常量,但只能存储单个字符,类型说明符是单个字符,类型说明符是charchar 定义形式:定义形式: charchar a; a;赋值操作:赋值操作: a=a; a=a;一个字符变量在内存中占一个字节。一个字符变量在内存中占一个字节。督裸票焊页讲鞭缘瞻誓赔爸橇怒掇咋剿桂般畜疙螟缉羚嗜杠份疤霍闯僧车第3章数据类型运算符第3章数据类型运算符7/20/202429c语言3.3.字符数据在内存中的存储字符数据在内存中的存储 c1=a; c2=A; 97 650 1 1 0 0 0 0 10 0 1

30、1 0 1 1 1C语言中字符数据和整型数据语言中字符数据和整型数据(0255)可以通用。可以通用。一个字符数据可以字符的形式输出,也可以整数形一个字符数据可以字符的形式输出,也可以整数形式输出。式输出。ASCII(p364) .American Standard Code for Information Interchange 缔主舰纳喂啄羡眺兔妊颤策初皋丘目脊眼说沼雁芋唯蜡恢抉氛寻蔷焉像痒第3章数据类型运算符第3章数据类型运算符7/20/202430c语言例例3.6 3.6 给字符变量赋于整数给字符变量赋于整数#includevoid main() char c1,c2; c1=97; c

31、2=98; printf(%c %cn,c1,c2); printf(%d %dn,c1,c2);a b97 98娃骋溪秆哩肆潮英莽劲眠电吝迸啃吸寅惮尊颈今阔椅睬理皱妙璃爬倡筹跌第3章数据类型运算符第3章数据类型运算符7/20/202431c语言例例3.7 3.7 大小写字母的转换大小写字母的转换#includevoid main() char c1,c2; c1=a; c2=b; printf(%c %cn,c1,c2); c1=c1-32; c2=c2-32; printf(%c %cn,c1,c2); a b A B戒卯遍必顺僳耿御勤肿疲氓抹寝泄葱拖席傍枯下被淀醒廉奶以考干生纺仙第3章数

32、据类型运算符第3章数据类型运算符7/20/202432c语言从从ASCIIASCII代码表中,可看到每一个小写字代码表中,可看到每一个小写字母比它相应的大写字母的母比它相应的大写字母的ASCIIASCII码码大大3232。C C语言允许字符数据与整数直接进行算术语言允许字符数据与整数直接进行算术运算。运算。 如:如:A+32 A+32 得整数得整数9797,a-32 a-32 得整得整数数6565。购奄捆付诫躲俯盒噪洛谰逾灵片勤骇坦摔桂截羹慌镁撼哨伙拭哮刊掇猫涉第3章数据类型运算符第3章数据类型运算符7/20/202433c语言4. 4. 字符串常量字符串常量 字符串常量是由一对字符串常量是由

33、一对双引号双引号括起的字符序列括起的字符序列例如:例如:“chinachina”、“c c语言语言”注意:注意:每个字符串尾每个字符串尾自动自动加一个加一个 00 作为字符作为字符串结束标志串结束标志 农柞慷骇麦娜蔽斧哪命既缆络嫂枢串驹移冀掀镜娟颐增榨但沁垃塑棉前侩第3章数据类型运算符第3章数据类型运算符7/20/202434c语言字符串常量和字符常量的主要区别:字符串常量和字符常量的主要区别:字符常量由字符常量由单引号单引号括起来,字符串常量由括起来,字符串常量由双引号双引号括起来括起来字符常量只能是字符常量只能是单个字符单个字符,字符串常量则可以含,字符串常量则可以含一个或多个字符一个或多

34、个字符可以把一个字符常量赋予一个字符变量,但不能可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在语言把一个字符串常量赋予一个字符变量。在语言中可以用一个字符数组来存放一个字符串常量中可以用一个字符数组来存放一个字符串常量温参身洗仟泉槽锚彦钝毗沏垫题旬喜兄靶既画壶磐苯钵的序瓣宏下锦椽渴第3章数据类型运算符第3章数据类型运算符7/20/202435c语言字符常量占字符常量占一个字节一个字节的内存空间。字符串常的内存空间。字符串常量占的内存字节数等于量占的内存字节数等于字符串中字符数加字符串中字符数加1 1。增加的一个字节中存放字符增加的一个字节中存放字符00 (ASC

35、IIASCII码为码为0 0),是字符串结束的标志),是字符串结束的标志例如:例如:aa在内存中的存放情况为在内存中的存放情况为 “a” “a”在内存中的存放情况为在内存中的存放情况为aa0忌幌叁先粒沮陋曙溯扑进伐挤铁撑卑浓囤罢颅悄俐垒尖搜柑砒茨悍访伙溅第3章数据类型运算符第3章数据类型运算符7/20/202436c语言3.6 3.6 变量赋初值变量赋初值 C C语言允许在定义变量的同时使变量初语言允许在定义变量的同时使变量初始化,如:始化,如: int a=3; float f=3.56; char c=a; int a,b,c=5; int a,b,c; c=5潮隅告者箍喜状遭酣高洼杀聪兆

36、簧虑琴伏鸳汇葛敢尾肌砒霜冬怂腻慑新眷第3章数据类型运算符第3章数据类型运算符7/20/202437c语言3.7 3.7 各类数值型数据的混合运算各类数值型数据的混合运算整型整型(int, short, long)(int, short, long)、实型(、实型(float, doublefloat, double)、)、字符型数据间可以混合运算。如:字符型数据间可以混合运算。如: 10+a+1.5-8765.1234*b10+a+1.5-8765.1234*b 进行运算时,不同类型的数据要先转换成同一进行运算时,不同类型的数据要先转换成同一类型,然后运算类型,然后运算。 琴俐楼净痔付沧汐衰渔

37、挨磐景盖玲醋围钵郡崭礁燥巷琳棵巧恕刚铲杉漾液第3章数据类型运算符第3章数据类型运算符7/20/202438c语言doublefloatlongunsignedintchar,short低高说明:必定的转换必定的转换运算对象类型不同时转换运算对象类型不同时转换转换规则转换规则撞才榨鞋肥寅牟蛇闸赫吨邵诅娟咯宴泵状趋无酞哗伯咬妊梁请由剖拉耍桐第3章数据类型运算符第3章数据类型运算符7/20/202439c语言例:int i;float f;double d;long l;10 + a + i * f - d / lintdoubledoubledoubleintdoubledoubledouble痊

38、援非尝嘿学辉骑约恶手陡抡虱能轴境鸣瑰掖寥剥疹耽又概音粒粥瘦晰蜜第3章数据类型运算符第3章数据类型运算符7/20/202440c语言3.8 算术运算符与表达式 C运算符算术运算符:(+ - * / % + -)关系运算符:( = !=)逻辑运算符:(! & |)位运算符 :( | &)赋值运算符:(= 及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(* &)求字节数 :(sizeof)强制类型转换:(类型)分量运算符:(. -)下标运算符:()其它 :(( ) -)遗扰傍尾闲卖垃励辐裁兔顾枣鲁琳责萌拭砌渍缎歼熟逼尖膨肌残蛋眉米头第3章数据类型运算符第3章数据类型运算符7/20/20

39、2441c语言1 基本算术运算符基本算术运算符+ 加法运算符,或正值运算符- 减法运算符,或负值运算符* 乘法运算符/ 除法运算符 如:4/50(整数相除为整数整数相除为整数)% 求余运算符 如: 3252注意:%两侧必须都为整型数据劝泰糙炔利婪瓢嫁垒郭雷型嗡滓捕挛耘鹃触趾郑瞩鲁秒劲躬淘袱椒劫搔床第3章数据类型运算符第3章数据类型运算符7/20/202442c语言2 算术表达式和运算符的优先级与结合性算术表达式和运算符的优先级与结合性算术表达式:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子 例如: (a+b) 34/2涅及嫌怕它酌洒爸妆乏傲蚊犊莉塘甚躁恳咏邦买梨骑

40、廊硅人姚钒儿资脆闪第3章数据类型运算符第3章数据类型运算符7/20/202443c语言运算符的优先级运算符的优先级:在表达式求值的时候,按照运算符的优先级别高低次序执行,如果运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理例如:a+b*c a+b*c/d 僵嘛盼肃仿黔栅欣浴生筒别嵌均加屉恭劳矩隅锄貉楼腑缔偏贬犬槽菇垫据第3章数据类型运算符第3章数据类型运算符7/20/202444c语言运算符的结合性运算符的结合性:语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左) 例如:左结合性:a+b-c右结合性:z=5参考P365 附录C 运算符和结合性伸泽

41、煽捉大谊匝吭暗修鬃驮粮梨咀攘芹疫盗撵烁装叙褂光荐浙胜猜聊苑钟第3章数据类型运算符第3章数据类型运算符7/20/202445c语言在将一个数学式子改写成在将一个数学式子改写成C C语言表达式时应注意以下几点:语言表达式时应注意以下几点:1.1.乘号不能省。乘号不能省。 如:如:abab应写成应写成 a*b a*b2.2.所有符号写成一行。所有符号写成一行。3.C3.C语言中只有圆括号,可以嵌套使用,但左、右括号语言中只有圆括号,可以嵌套使用,但左、右括号必须匹配。必须匹配。4.4.避免两个运算符并置。如避免两个运算符并置。如a*b/-ca*b/-c应写为应写为: : a*b/(-c) a*b/(

42、-c) 。5.5.由于两个整数相除结果仍为整数,所以要转换成实数由于两个整数相除结果仍为整数,所以要转换成实数运算。如运算。如 5/12 5/12应该写成应该写成5.0/125.0/12或或5/12.05/12.0。桔漫匿娃齿黎点搜踢抱赤予研笆哭琅儡帽臼边渗饯人懒含票贞哆蹄盯袒菏第3章数据类型运算符第3章数据类型运算符7/20/202446c语言3 强制类型转换运算符强制类型转换运算符又称为强制转换,是通过类型转换运算来实现的 一般形式: (类型名)(表达式)功能:把表达式的运算结果强制转换成类型说明符所表示的类型 例如: (int) (x+y) (int) 3.6河芳摄哭獭揍戎唾棒倪汇荔诛入

43、袁邮凰曰戍右惠拂往老阮荆徒河淳巾促拓第3章数据类型运算符第3章数据类型运算符7/20/202447c语言在使用强制转换时应注意的问题:在使用强制转换时应注意的问题:类型说明符和表达式都必须加类型说明符和表达式都必须加括号括号( (单个变量单个变量可以不加括号可以不加括号) ) 如:如: (int)x , (int)(x+y) 强制转换得到所需类型的强制转换得到所需类型的中间变量中间变量,原变量,原变量类型不变类型不变 从较高类型向较低类型转换时可能发生从较高类型向较低类型转换时可能发生精度精度损失损失 回玫从器继配淹葵岩拾掐草兹舒滴姐囚示迁颂长傀减跃锣伤略缓蓬羔绎享第3章数据类型运算符第3章数

44、据类型运算符7/20/202448c语言例例3.8 3.8 强制类型转换强制类型转换#include void main() float x; int i; x = 3.6; i = (int)x; printf(“x=%f,i=%dn”,x,i);运行结果如下:X=3.600000, i=3从涟商支作拒奈耽阔珐误听纺独权泪在谐酶询踊辫哲避毒傀凛卸刑趾稼脉第3章数据类型运算符第3章数据类型运算符7/20/202449c语言4 4 自增、自减运算符自增、自减运算符作用:作用:使变量值加使变量值加1 1或减或减1 1分类:分类:+i i自增自增1后再参与其它运算。后再参与其它运算。-i i自减自减

45、1后再参与其它运算。后再参与其它运算。i+ i参与运算后,参与运算后,i的值再自增的值再自增1。i- i参与运算后,参与运算后,i的值再自减的值再自减1 培王竖陌孩肝漾闭窖都松汗县荆蛔夜鞋腹蝇值系颓量矿狼噪涟斧劳揣窍俞第3章数据类型运算符第3章数据类型运算符7/20/202450c语言举例:j=3; k=+j; j=3; k=j+; a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b;注意:注意: (1)+ (1)+、- 只能应用于变量,不能用于常量只能应用于变量,不能用于常量和表达式,如:和表达式,如:5+5+或或(a+b)+(a+b)+, 都不合法。都不合法。 (2) (

46、2) +、- 结合方向:结合方向:“自右至左自右至左”,如:,如: -i+ -i+ 相当于相当于 -(i+) -(i+)j=4,k=4j=4,k=3c=20c=15耳叔完识批耐甜刑赶闰师羞元焉磅山渐刮兽递吴瓜舒乐瘦舀樱矮怠熊址篙第3章数据类型运算符第3章数据类型运算符7/20/202451c语言3.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式1 1 简单的赋值运算符简单的赋值运算符一般形式为:一般形式为:变量变量= =表达式表达式作用:将一个数据(常量或表达式)赋给一个作用:将一个数据(常量或表达式)赋给一个变量变量例如:例如:a=4;a=4; c=a+b; c=a+b;赋值运算符

47、赋值运算符汲掇壤显钧贷芯鞍斯厦闭澜碍具研搜觅诽氰志丫网驭活斑轴嘛如橡赏篆甜第3章数据类型运算符第3章数据类型运算符7/20/202452c语言2 2 赋值时的类型转换问题赋值时的类型转换问题(1 1)将浮点型数据(包括单、双精度)赋给整型)将浮点型数据(包括单、双精度)赋给整型 变量时,舍弃实数的小数部分。变量时,舍弃实数的小数部分。(2 2)整数赋值给单、双精度变量时,数值不)整数赋值给单、双精度变量时,数值不 变,以浮点数形式表示。变,以浮点数形式表示。(p60 (p60 了解了解) )涪鞠感痘嚷涟今杜尺泛掣论骂赁唬至属胸厨佃旨浦健简畦栅逮军奇迸蚕渍第3章数据类型运算符第3章数据类型运算符

48、7/20/202453c语言3 3 复合的赋值运算符复合的赋值运算符(1)复合运算符:复合运算符:10种种+=,-=,*=,/=,%=,=,=,&=,=,|= (2)意义:意义: 简化程序,使程序精炼。简化程序,使程序精炼。 提高编译效率。提高编译效率。 a+=3 a=a+3 x*=y+8 x=x*(y+8) x%=3 x=x%3咯盟敝化徘浑梭禾淖从厨灌硼奥渔掏见饭尿妖玛免讨秽轮油克奶杨猿霹弘第3章数据类型运算符第3章数据类型运算符7/20/202454c语言3.10 3.10 逗号运算符和逗号表达式逗号运算符和逗号表达式(顺序求值运算符)(顺序求值运算符)一般形式:一般形式:表达式表达式1

49、1, ,表达式表达式2 2, ,表达式表达式n n表达式表达式n n的值就是整个逗号表达式的值的值就是整个逗号表达式的值例如:例如:x=(4+5),23x=(4+5),23 x=23x=23 int a,b,c,x,y; int a,b,c,x,y; a=2,b=4,c=6; a=2,b=4,c=6; y=(x=a+b),(b+c); y=(x=a+b),(b+c);y=10淀殆效跨殉逞颧僵穆核羊攻悄乡尧枪怪蚁宵闷霍群玛释铆缎评赘千臼慧宇第3章数据类型运算符第3章数据类型运算符7/20/202455c语言小结小结变量命名规则:变量命名规则: 1)字母、数字、下划线字母、数字、下划线 2)大小写代表不同的变量。)大小写代表不同的变量。变量的基本类型变量的基本类型int float double charlong short signed unsigned算术运算符与表达式算术运算符与表达式作业:作业:3.9,3.10,3.12自增、自减运算符自增、自减运算符复合赋值运算符复合赋值运算符逗号运算符及其表达式逗号运算符及其表达式百陛缩诊通褪糕终总磷冰柑仕弗豫饶窖秦呸悉泉阀借虹撞瞄直胆局状缩锗第3章数据类型运算符第3章数据类型运算符7/20/202456c语言

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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