- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch3c操作符和表达式
第三章 操作符和表达式;3.1 操作符和表达式;操作符和表达式;操作符的优先级;操作符的结合性;3.2 优先级和结合性;操作符按功能分类:;一、算术操作符;当两个操作数均为整数时,*和/重载为整乘和整除,结果为整数,除法运算后舍去小数取整。如:
5/4 //结果为1,整数;举例:;只要有一个操作数是实数,两个操作数均转换为double型,*和/重载为普通的乘和除,结果是实数。;二、自增、自减操作符;例题3-1;三、条件操作符 ;例题3-4;四、逻辑操作符;逻辑运算规则;五、关系操作符;;;条件判断与if语句; 由于逻辑值和整数之间的对应关系,也允许整型和字符型操作数进行逻辑运算:
210 //逻辑与,21与0,结果为假:0
21||0 //逻辑或,21或0,结果为真:1
!21 //逻辑非,21的非,结果为假:0
运算结果同样可以作为一个整数参与其他运算。 ;已知: int a=10, b=20, c=30;float x=1.8, y=2.4; ;在求逻辑表达式值的过程中,一旦表达式的值能够确定,就不再逐步进行以后的运算。称为“求值优化”。;六、位操作符;(2)左移运算符“”
运算一般格式为:an
其中a为整数,n为一个正整数常数。语义为将a的二进制数依次向左移动n个二进制位,并在低位补0。左移n位相当于乘以2的n次方,但移位运算的速度比乘法快。 ;将两个操作数的对应位逐一进行按位逻辑与运算。运算规则为:对应位均为1时,该位运算结果为1;否则为0。例如:
a b a b 该运算可用来将整数的某些位置0,而保留所需要的位,上例保留了低四位。;将两个操作数的对应位逐一进行按位逻辑或运算。运算规则为:只要有一个数对应位为1,该位运算结果即为1;两个数对应位均为0,该位结果为0。例如:
a b a | b 该运算符可用来将整数的某些位置1。上例高四位不变,低四位全1。;将两个操作数的对应位逐一进行按位异或运算。运算规则为:当对应位的值不同时,该位运算结果为1,否则为0。例如:
a b a ^ b 该运算符可用来将一个整数的某些位取反,或将整型变量的值置0(将整型变量与自身按位异或)。上例低四位取反,高四位不变。;位运算示例:;七、赋值操作符 “=”;复合赋值运算符:;八、逗号操作符;例题3-3;九、求字节数操作符:sizeof ;;其它操作符;3.2 表达式 ;二、表达式的值和类型 ;例题3-5;三、类型转换;强制类型转换示例;说明:
(1)强制类型转换不改变表达式本身的值类型,而是产生一个临时变量,用来暂存转换后的值,该临时变量引用后即自动释放。如上例,执行强制类型转换后变量a和b的值及类型都不变,而是各自产生一个临时变量,用这两个临时变量的值进行运算。
(2)强制类型转换符优先级较高,只对紧随其后的表达式起作用,而对其他部分不起作用。如表达式(float)a/b的含义是先将变量a强制转换为浮点数,然后与整数b运算。;char ch1,ch2,ch3;
cout“请输入一个字符:”;
cinch2;
ch1=ch2-1,ch3=ch2+1;
coutch1“,”ch2“,”ch3endl;
coutint(ch1)“,”int(ch2)“,”
int(ch3)endl;
;自动类型转换;(1)字符可以作为整数参与数值运算,整数值为其ASCII码。
(2)操作数为字符或短整型时,系统自动变换成整型。
(3)操作数为实型时,系统自动变换成双精度??。
(4)其余情况,当两操作数类型不同时,将精度低(或表示范围小)的操作数的数据类型变换到与另一操作数类型相同再进行运算 ;例: 假设有如下变量定义char c1, c2; int i1, i2; float x1, x2;
文档评论(0)