- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言第三章(数据类型和表达式)3
3.10 不同数据类型间的转换;形式: (数据类型)表达式
当需要做一些特殊的运算,必须使用强制类型转换运算。
例1:int k=3; float x; 执行: x=1/k; 问x的值?
如何让x得到0.3333333的值?
例2:int a=3,b=4; float x=10.4,y=3.5;
表达式:(float)(a+b)/2+(int)x%(int)y的结果?
[注意]
(1)转换是暂时的,定义是永久的;
(2)它是一个运算符, 单目运算, 优先级为2;;3.11 关系运算符; 关系表达式
用关系运算符将两个表达式连接起来,叫关系表达式; 例1:设:a=3,b=2,c=1,
则: ab的值为1; (ab)==c的值为1;
b+ca 的值为0
d=ab中d的值为ab的值,为1。
f=abc中的值为1c的值,为0。
例2:int x=5,y=z=4; 执行: x==(y=z);后,表达式的值是多少? x的值是多少?
例3:int x=5,y=z=4; 执行:x=y==z;后,
表达式的值是多少? x的值是多少?;(1)应避免对实数作相等或不等的判断;运算符;2.逻辑与,运算符为;3. 逻辑或,运算符为||; 逻辑运算符的优先级
!→ → ||
逻辑运算符 “” 和 “||” 低于关系运算符,
“!”是单目运算符,高于算术运算符。; 在C语言中,当判断一个量的真假时,一切非零的数据均可以当成‘真’来处理。;常用的条件判断表达式; 和||的短路规则
在含有逻辑运算符 或||的表达式中,并不是所有逻辑运算符都有机会被执行。只有在必须执行下一个运算符才能求出表达式值时,才执行该运算符。所以,不是所有的子表达式都有机会被执行。
目的:提高运算速度。执行顺序:从左向右
设e1,e2,e3均为逻辑表达式:
e1e2e3;
e1||e2||e3 ;
e1||e2e3; 相当于: e1||(e2e3)
e1e2||e3; 相当于: (e1e2)||e3 ;例1: 53 2||84-!0;例3: x = y = z = -1;
问表达式:++x||++y ++z 的值是什么?
x=?, y=?, z=?
例4:x = y = z = -1;
表达式:++x ++y||++z 的值?
x=?, y=?, z=?
相当于: (++x ++y)||++z ;;3.13 条件运算符; 优先级偏低,仅高于“=”运算
例:int a=2,b=3;char ch;
表达式:ch=a==b?‘Y’:‘N’ 的值?; ch的值?
结???规则:从右向左;;例1:x%2==1?1:0
例2:若ch中是小写字母,则转换成大写字母。
ch= ch=’a’ch=’z’ ? ch-‘a’+’A’:ch
例3:设a,b已赋值,将a,b中最大值存入m中。
m = ab?a:b
例4:设a,b,c已赋值,将a,b,c中最大值存入m中。
m= (m=ab?a:b)c?m:c ;形式:表达式1, 表达式2, ……,表达式n
优先级:15(最低);结合规则: 从左向右
求值过程:从左向右,依次对各表达式求值。
逗号表达式的值等于表达式n的值。;本章习题
文档评论(0)