第2章数据型与表达式

上传人:工**** 文档编号:567658004 上传时间:2024-07-21 格式:PPT 页数:37 大小:518KB
返回 下载 相关 举报
第2章数据型与表达式_第1页
第1页 / 共37页
第2章数据型与表达式_第2页
第2页 / 共37页
第2章数据型与表达式_第3页
第3页 / 共37页
第2章数据型与表达式_第4页
第4页 / 共37页
第2章数据型与表达式_第5页
第5页 / 共37页
点击查看更多>>
资源描述

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

1、电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学第2章 数据类型与表达式2.1 C+2.1 C+的数据类型的数据类型2.2 2.2 常量常量2.3 2.3 变量变量2.4 C+2.4 C+的运算符的运算符2.5 2.5 算术运算符与算术表达式算术运算符与算术表达式2.6 2.6 赋值运算符与赋值表达式赋值运算符与赋值表达式2.7 2.7 逗号运算符与逗号表达式逗号运算符与逗号表达式抉虚宙眶凯氢于几蛋画阂拘煽芝贞牧毛烦找凯疟压寸姻惧筏钠宛镁弟狭众第2章数据型与表达式第2章数据型与表达式

2、电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学2.1 C+的数据类型的数据类型数据类型总表数据类型总表数据类型决定:数据类型决定:1. 数据占内存字节数数据占内存字节数2. 数据取值范围数据取值范围3. 其上可进行的操作其上可进行的操作煞戈垃假习醛霜矿楼顺峭穴玖塑胯讲付审农梅磷毫陷镀院峰疏鞍拉捆拎耿第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络

3、络 教教 学学基本数据类型说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:啡蘑又掐盯忠压鸭议埂履佐爹熟纠杜侈电血产提交嘴龋痕旧抬红雷愈澡深第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学说明:说明:(1) (1) 整型数据分为长整型整型数据分为长整型(long int)(long int)、一般整型、一般整型(int)(int)和短整型和短整型(short int)(short int)。在。在intint前面加前面加l

4、onglong和和shortshort分别表示长整型和短整型。分别表示长整型和短整型。(2) (2) 整型数据的存储方式为按二进制数形式存储,整型数据的存储方式为按二进制数形式存储,例如十进制整数例如十进制整数8585的二进制形式为的二进制形式为10101011010101,则在,则在内存中的存储形式如下图所示。内存中的存储形式如下图所示。腥铀卵矫剖微肝诲方太芹乃竿虑耸戌痉拍毋涨枕返住狰燕蝇肢脸尤哈缠双第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教

5、 学学 (3) (3) 在整型符号在整型符号intint和字符型符号和字符型符号charchar的前面的前面, ,可以加可以加修饰符修饰符signed(signed(表示表示“有符号有符号”)”)或或unsigned(unsigned(表示表示“无无符号符号”)”)。例如短整型数据占两个字节。例如短整型数据占两个字节 ,见下图。,见下图。桑庶睁滞炯疯两麓庞啤漆戏狭昧蛮峻掸躯近佐唐梧脏呜证卵苦弃骨焚累吧第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教

6、学学(4) (4) 浮点型浮点型( (又称实型又称实型) )数据分为单精度数据分为单精度 float:float:分配分配4 4个字节个字节, ,提供提供6 6位有效数字位有效数字 Double: Double:分配分配8 8个字节个字节, ,提供提供1515位有效数字位有效数字 long double: long double:同同doubledouble。(5) short(5) short和和short intshort int等效,等效,unsigned intunsigned int和和unsignedunsigned等效。等效。粘擅拖以期集斋棘酋可吗人能跳夏抹靠湾迸宜恩骤酒碍肠把怪

7、蜘潜药哮伪第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学2.2 常量常量v定义:程序运行时其值不能改变的量(即常数)定义:程序运行时其值不能改变的量(即常数)v分类分类: :整型常量整型常量实型常量实型常量字符常量字符常量字符串常量字符串常量 常量常量扯乌矩渤兵涸羽超蓉彦尽杨据凋砰朔峨十汕涡钻媒记告冲貌常些盔哄链屎第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY

8、 DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学&整型常量(整常数)整型常量(整常数)v三种形式:三种形式:l十进制整数:由数字十进制整数:由数字0 09 9和正负号表示和正负号表示. .如如 123,-456,0 123,-456,0l八进制整数:由数字八进制整数:由数字0 0开头开头, ,后跟数字后跟数字0 07 7表示表示. .如如0123,0110123,011l十六进制整数:由十六进制整数:由0x0x开头开头, ,后跟后跟0 09,a9,af,Af,AF F表示表示. . 如如0x123,0Xff0x123,0Xffv整型常量的类型整型常量的类型l根据其值所在范

9、围确定其数据类型根据其值所在范围确定其数据类型l在整常量后加字母在整常量后加字母l l或或L L,认为它是,认为它是long int 型常量型常量例例 30000 为为short int型型 65536 为为 int 型型问题:问题:0123 = ( )100x123 = ( )100Xff = ( )10问题:问题:0123 = ( )100x123 = ( )100Xff = ( )1083291255#includeusing namespace std;int main() int a=0xff;coutaendl;return 0; 易敛穿凌私昏变栈杰佩宙刷揽己斧柄惭狼郎圆焚推舷香少

10、苫滚椰由想伪谱第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学&实型常量(实数或浮点数)实型常量(实数或浮点数)表示形式:表示形式:l十进制数形式:(必须有小数点)十进制数形式:(必须有小数点) 如如0.123, 0.123, .123, 123.0, 0.0, 123.123, 123.0, 0.0, 123.l指数形式:(指数形式:(e e或或E E之前必须有数字;指数必须为之前必须有数字;指数必须为整数整数)如)如12.3e3 ,123E

11、2, 1.23e4 , 12.3e3 ,123E2, 1.23e4 , e-5e-5 , , 1.2E-3.51.2E-3.5 实型常量的类型实型常量的类型l默认默认doubledouble型型l在实型常量后加字母在实型常量后加字母f f或或F F,认为它是,认为它是float float 型型豪萄挥吁吐坡盎滚期哨苗摊式狞湿俐伯凳瞎廓体企叫蹿蛤汞霹承日引蚌观第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学&字符常量字符常量v定义定义: :用用单

12、引号单引号括起来的单个括起来的单个普通字符普通字符或或转义字符转义字符.v字符常量的字符常量的值值:该字符的:该字符的ASCIIASCII码值码值转义字符及其含义:转义字符及其含义:转义字符转义字符含义含义nvradddtbf“xhh转义字符转义字符含义含义换行换行垂直制表垂直制表回车回车响铃响铃单引号单引号3位位8进制数代表的字符进制数代表的字符水平制表水平制表退格退格换页换页反斜线反斜线双引号双引号2位位16进制数代表的字符进制数代表的字符如如 101 -A 012 -n 376 - x61 -a 60 -0 483 -( )例例:A-101-x41-65如如 A65 A65, a97 a

13、97, 048 , n10 048 , n10如如 a A ? n 101v转义字符转义字符: :反斜线后面跟一个字符或一个代码值表示反斜线后面跟一个字符或一个代码值表示例例 转义字符举例转义字符举例#includeusing namespace std;int main() cout 101 x42 Cn; cout I say:How are you?n; cout C Programn; cout Turbo Cendl; return 0;运行结果:运行结果:(屏幕显示屏幕显示)A B CIsay:”How are you?”C ProgramTurbo C例例 void main()

14、 cout“Yb=n”endl; 运行结果:运行结果:屏幕显示:屏幕显示:=打印机输出:打印机输出:搂缓寓助亮馋际层姬免甥剩逗恕龙嘛渤掐菠益惋穗鲤具但肤啦聪抗齿晋奈第2章数据型与表达式第2章数据型与表达式10aaa电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学l字符数据的使用方法字符数据的使用方法字符数据和整型数据之间可以运算。字符数据和整型数据之间可以运算。字符数据与整型数据可以互相赋值。字符数据与整型数据可以互相赋值。例例: 举例举例#includeusing namespac

15、e std;int main() int num=10; char ch; ch =num+56; cout num chendl; return 0;结果:结果:10B字符串常量字符串常量: :用用双引号双引号括起来括起来的一串字符的一串字符例例:CHINA a a所以:所以:char c; c=a;斗沟孔真霹兔掌嫌估甥锥杖鼎翘贸藩恬氮拾赎椒焰怜涧仟瘁耸瑚活怖姿豪第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学如如 #define PRICE

16、 30例例: 符号常量举例符号常量举例#define PRICE 30int main() int num,total; num=10; total=num*PRICE; cout total= totalendl; return 0;运行结果:运行结果:total=300符号常量符号常量l符号常量符号常量: :用标识符代表常量用标识符代表常量u定义格式:定义格式: #define#define 符号常量符号常量 常量常量u一般用大写字母一般用大写字母u是宏定义预处理命令,不是是宏定义预处理命令,不是C语句语句拥耀应苫告朱惑瓤印铱妥莉肠庆盏侩疾猿赘熄瞒酸咕秆砷屠吵图晓鳖吗浸第2章数据型与表达式

17、第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学例例2.2 小写字母转换为大写字母。小写字母转换为大写字母。#include using namespace std;int main( )char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; coutc1 c2endl;return 0;运行结果:运行结果:A B耿咯幅贸牙驮挠涅燎雾幌董自毋叮搽洞布艾漂够捐还岂澜激琉卒液簇逢彪第2章数据型与表达式第2章数据型与表达式电子与信息工程系

18、电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学例:例:coutabcnendl;输出:输出: abc例:例: cout I say Thank you! n ;输出:输出: I say Thank you! 如果在一个字符串中最后一个字符为如果在一个字符串中最后一个字符为“”,则,则表示它是续行符。表示它是续行符。例:例: coutWe must study C + hard!;输出:输出: We must study C + hard!#include using namespace std;i

19、nt main( )coutaaaaaaa bbbbbbb _above $123M.D.John3days#33char$123ab变量名规则变量名规则定义:用来标识变量、常量、函数等的字符序列定义:用来标识变量、常量、函数等的字符序列组成:组成:l只能由只能由字母字母、数字数字、下划线下划线组成,且第一个字母必须是字母或组成,且第一个字母必须是字母或下划线下划线l大小写敏感大小写敏感l不能使用关键字不能使用关键字长度:无规定,有系统最长长度:无规定,有系统最长32个字符。个字符。命名原则:命名原则:l见名知意见名知意l不宜混淆不宜混淆 如如l与与I, o与与0奖茅秩杰戈翌藻设舀栋娄态论傀果

20、熔轻溅熏诺莲唇仅喀竞帜税幕旅闪袄拦第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学v变量必须变量必须“先定义,后使用先定义,后使用”v定义变量的一般形式:定义变量的一般形式: 变量类型变量类型 变量名表列;变量名表列;例:例: float a,b,c,d,e; v定义变量时指定它的初值。定义变量时指定它的初值。例:例: float a=83.5,b,c=64.5,d=81.2,e; 定义变量定义变量诗沃匝验莫洛言驳塌节酷枝梅惋档砍思动攻契旗闻汤

21、喀罪蔑意名夺尺稀山第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学v对多个变量赋予同一对多个变量赋予同一初初值,必须分别指定,值,必须分别指定,不能写成不能写成float a=b=c=4.5;float a=b=c=4.5;而应写成而应写成 float a=4.5,b=4.5,c=4.5;float a=4.5,b=4.5,c=4.5;或或float a,b,c=4.5;float a,b,c=4.5;a=b=c;a=b=c;毯痹旷宗咳必灾景燕

22、压驼浸谐罢嘱凑诽耸获湿灶律肾弊仅蝎睹飘榨筒由送第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学v在定义变量时,如果加上关键字在定义变量时,如果加上关键字constconst,则变量的,则变量的值在程序运行期间不能改变,这种变量称为常变量值在程序运行期间不能改变,这种变量称为常变量(constant variable)(constant variable)。例例: const int a=3; v在定义常变量时必须同时对它初始化在定义常变量时必须

23、同时对它初始化( (即指定其值即指定其值) )v常变量不能出现在赋值号的左边。常变量不能出现在赋值号的左边。例例:const int a=5; a=3; /常变量不能被赋值常变量不能被赋值 常变量常变量嘉捞遇隐板决戴锦度甫尝宽诱母聪竿饵窗米倘鳖瓷稗薄损蓖港考池瓶累友第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学v可以用表达式对常变量初始化可以用表达式对常变量初始化例:例:const int b=3+6,c=3*cos(1.5); 注意注意:使

24、用了系统函数使用了系统函数cos,必须包含头文件,必须包含头文件#include 或或 #include 鹏苇胁雷屉昂扎蟹判殴洛河穷馋澳叭肇垣吁感了吻全慨峡硝驰察鹊劈聪屏第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学 算术运算符算术运算符 +、-、*、/、 %、+、 - 关系运算符关系运算符 、 、!、! 逻辑运算符逻辑运算符 、 |、 ! 位运算符位运算符 、|、 2.4 C+的运算符的运算符腺骄测拒激小逐瘴柳滇乾骄弄绵径窥忧伞惜敞职扦啸验

25、互懦倔无孩销膏酣第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学赋值运算符赋值运算符 ( (及其扩展赋值运算符及其扩展赋值运算符) )条件运算符条件运算符 (?:) (?:)逗号运算符逗号运算符 ( (,) )指针运算符指针运算符 (*) (*)引用运算符和地址运算符引用运算符和地址运算符 ( () )求字节数运算符()求字节数运算符()强制类型转换运算符(强制类型转换运算符( ( (类型类型) ) 或类型或类型( )( ))成员运算符成员运算

26、符 (. .)指向成员的运算符指向成员的运算符 (-)下标运算符下标运算符 ( )其他其他 (如函数调用运算符()(如函数调用运算符()沈凑给堂靴糖偶南轰烤顺恰升丸画壹友岿院坡桨揪堵袋幕讼畸克猾远氟斥第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学u学习运算符应注意:学习运算符应注意:运算符功能运算符功能与运算量关系与运算量关系要求运算量个数要求运算量个数要求运算量类型要求运算量类型运算符优先级别运算符优先级别结合方向结合方向结果的类型结果的类

27、型纯重摇辜腮盒岳填字舟装患码口辟功侍柳漫佩梨乌躯驯能窥庄锄编胆熔骸第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学u算术运算符和表达式算术运算符和表达式基本算术运算符:基本算术运算符: + + - - * / % * / %结合方向:从左向右结合方向:从左向右优先级:优先级: - - - -* / %* / % - - + -+ - (3) (4) (5)(3) (4) (5)说明:说明:“-”“-”为为单目单目运算符时运算符时, ,右结合性右

28、结合性两整数相除,结果为整数两整数相除,结果为整数% %要求两侧均为整型数据要求两侧均为整型数据例例 5/2 = -5/2.0 =例例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例例 5/2 = 2 -5/2.0 = -2.5例例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ( )#include using namespace std;int main( )cout-5%2endl;cout5%-2endl;return 0;运行结果:运行结果:11檀咽蚤峻撤父泪涛盏撑富残课躁宜搓描悦辞虹号益震屏州蹬膨仙盗踩易帝第2章数据型与表达式第

29、2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学例例 : #include #define PRICE 12.5using namespace std; void main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; cout“total=“total“,ch1=“ch1endl; 宏定义宏定义变量定义变量定义输出结果输出结果运行结果:运行结果:total=37.5,

30、 ch1=d碴霄赴耐厅耽弥搂算拽叹供圭谦顽俺粹危挖俞怒污头无帐颈彬辱裴侍瞧旺第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学2.5.3表达式中各类数值型数据间的混合运算表达式中各类数值型数据间的混合运算u隐式转换隐式转换什么情况下发生什么情况下发生运算转换运算转换-不同类型数据混合运算时不同类型数据混合运算时赋值转换赋值转换-把一个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时输出转换输出转换-输出时转换成指定的输出格式输出时转换成

31、指定的输出格式函数调用转换函数调用转换-实参与形参类型不一致时转换实参与形参类型不一致时转换运算转换规则运算转换规则: :不同类型数据运算时先自动转换成同一不同类型数据运算时先自动转换成同一类型类型蛙施横姚黍社来注萄幽承拦谴酗蠢橡淄阻母絮功帮醒末窑韧若悍概摩婴湛第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学doublefloatlongunsignedintchar,short低低高高说明说明:必定的转换必定的转换运算对象类型不同时转换运算对

32、象类型不同时转换例例 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f - d/l例例 int i; float f; double d; long l;柱与猩绩呀咆袍浸佐都狂蹈楚忙涨超理穗禁严椿芥舰个竭螺故篇限添趾等第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPA

33、RTMENTC+C+程序设计程序设计 网网 络络 教教 学学l自增、自减运算符自增、自减运算符+ -+ -作用:使变量值加作用:使变量值加1 1或减或减1 1种类:种类:前置前置 +i, -i ( +i, -i (先执行先执行i i+1+1或或i-1i-1,再使用,再使用i i值)值)后置后置 i+,i- ( i+,i- (先使用先使用i i值值, ,再执行再执行i i+1+1或或i-1i-1)例例 j=3; k=+j; j=3; k=+j; j=3; k=j+; j=3; k=j+; j=3; cout+jendl; j=3; cout+jendl; j=3; coutj+endl; j=3

34、; coutj+* / % -+ - + - -* / % -+ - (3) (4) (5) (3) (4) (5)例例 -i+ -i+ -(i+) -(i+) i=3; couti+endl; i=3; couti+endl; /-3/-3 例例 j+k; (j+)+k; j+k; (j+)+k;例例 -i+ -i+ i=3; cout-i+endl; i=3; cout-i+endl; 律前苔垄状浙户遥律钻局樟盏仅汉冕谅炭抉冲餐家众传架砚攘汪枚瓜驼武第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPAR

35、TMENTC+C+程序设计程序设计 网网 络络 教教 学学l显式转换(强制转换)显式转换(强制转换)一般形式:一般形式:(类型名)(表达式)(类型名)(表达式)例例 (int)(x+y) (int)(x+y) (int)x+y (int)x+y (double)(3/2) (double)(3/2) (int)3.6 (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类说明:强制转换得到所需类型的中间变量,原变量类型不变型不变 例例 #include using namespace std; void main() float x; int i; x=3.6; i=(int)x;

36、cout x=xi=iendl; 结果:结果:x=3.6 ,i=3精度损失问题精度损失问题较高类型向较低类型转换时可能发生较高类型向较低类型转换时可能发生盖峰赵胜脆番那鸳现袒账欲鹤走孩硼调碰严株笆耪菏桥蛙蹦硼络牡旅弃熄第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学2.62.6赋值运算符与赋值表达式赋值运算符与赋值表达式u简单赋值运算符简单赋值运算符符号:符号: = =格式:格式: 变量标识符变量标识符= =表达式表达式作用:将一个数据(常量或

37、表达式)赋给一个变量作用:将一个数据(常量或表达式)赋给一个变量u复合赋值运算符复合赋值运算符种类种类:+= -= *= /= %=+= -= *= /= %= = = = &= = |= &= = |=含义:含义: exp1 op= exp2 exp1 op= exp2 exp1 = exp1 op exp2exp1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例例 a=3; a=3; d=func(); d=func(); c=d+2; c=d+2;透壶揭授焦误喝究车芹岭畅蕊循少靶藤襄匠侮状玖邱骚阴啃之机侗夹艘租第2章数据型与表达式第2章数

38、据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学u说明说明: :结合方向:结合方向:自右向左自右向左优先级优先级: 15左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式赋值表达式的值与变量值相等赋值表达式的值与变量值相等,且可嵌套且可嵌套赋值转换赋值转换规则规则: :使赋值号右边表达式值使赋值号右边表达式值自动自动转换成其左边转换成其左边变量的类型变量的类型例例 3=x-2*y;3=x-2*y; a+b=3; a+b=3;例例 float f; int

39、 i; i=10; f=i;则则 f=10.0例例 int i; i=2.56; /结果结果i=2;例例: a=b=c=5: a=b=c=5 a=(b=5) a=(b=5) a=5+(c=6) a=5+(c=6) a=(b=4)+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) a=(b=10)/(c=2)/表达式值为表达式值为5 5,a,b,ca,b,c值为值为5 5/ b=5;a=5/ b=5;a=5/表达式值表达式值1111,c=6,a=11c=6,a=11/表达式值表达式值1010,a=10,b=4,c=6a=10,b=4,c=6/表达式值表达式值5 5,a=5,b

40、=10,c=2a=5,b=10,c=2汗掇奢遵马纱羚蔫烽诲赶胖硷瓢痈乘观晨她链晕伯抹那试槛构盆藤届诧俺第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学u说明说明: :结合方向:结合方向:自右向左自右向左优先级优先级: 15左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式赋值表达式的值与变量值相等赋值表达式的值与变量值相等,且可嵌套且可嵌套赋值转换赋值转换规则规则: :使赋值号右边表达式值使赋值号右边表达式值自动自动转换转换成

41、其左边变量的类型成其左边变量的类型例例: a=12; : a=12; a+=a-=a*a a+=a-=a*a例例: int a=2; : int a=2; a%=4-1; a%=4-1; a+=a*=a-=a*=3; a+=a*=a-=a*=3; /a=-264 /a=-264 等价于等价于a=a+(a=a-(a*a)a=a+(a=a-(a*a)/a=0 /a=0 等价于等价于a=a+(a=a*(a=a-(a=a*3)a=a+(a=a*(a=a-(a=a*3)统猪时泊溅袖疗驳及美瞻庚忱醛绍胆埋谰粹蜗陋遣另季努闽结赫座涂讫沏第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系

42、COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学例例2.5 将有符号数据传送给无符号变量。将有符号数据传送给无符号变量。#include using namespace std;int main( ) unsigned short a; short int b=-1; a=b; couta=aendl; return 0;运行结果为运行结果为:65535峦巢承耻郸围臼炸千渠锥台缩都尧颅圃锭峨毗素指娟瘪咏颧跋系巍某倦潍第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIEN

43、CE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学u逗号运算符和表达式逗号运算符和表达式形式:形式:表达式表达式1 1, ,表达式表达式2 2, ,表达式表达式n n结合性结合性: :从左向右从左向右优先级优先级: 17: 17逗号表达式的值:等于表达式逗号表达式的值:等于表达式n n的值的值用途:常用于循环用途:常用于循环forfor语句中语句中例例 a=3*5,a*4 a=3*5,a*4,a+5例例 x=(a=3,6*3) x=a=3,6*a例例 a=1;b=2;c=3; coutabcendl; cout(a,b,c)bcendl; /a

44、=15,表达式值表达式值60/a=15,表达式值表达式值20/赋值表达式,表达式值赋值表达式,表达式值18,x=18/逗号表达式逗号表达式,表达式值表达式值18,x=3/123/323枣棺卒篡俐绎洽藕敖蒲抖完锐棘稚障朋衡歧介榜穆腥贮滤己昆赔疤脂笼牲第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学u逗号运算符和表达式逗号运算符和表达式形式:形式:表达式表达式1,表达式表达式2,表达式表达式n结合性结合性:从左向右从左向右优先级优先级: 17逗号表

45、达式的值:等于表达式逗号表达式的值:等于表达式n的值的值用途:常用于循环用途:常用于循环for语句中语句中例例:#include void main() int x,y=7; float z=4; x=(y=y+6,y/z); coutx=“xendl;运行结果:运行结果:x=3裁间物坦蛛募棠植恿恃催参秸霜洗剑敢凰锤岗庭架鸥棕年供辑移活砍第描第2章数据型与表达式第2章数据型与表达式电子与信息工程系电子与信息工程系COMPUTER SCIENCE & TECHNOLOGY DEPARTMENTC+C+程序设计程序设计 网网 络络 教教 学学作业:P4142,38吴昌湾仲井龋窑腑舷焰獭纺吧陌擦舞辅惩亡淬盯粗茶宦银卜裤妈尼捉胳拧第2章数据型与表达式第2章数据型与表达式

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

最新文档


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

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