- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 3.9 赋值运算符和表达式 3、复合的赋值运算符 在赋值符“=”之前加上其他二目运算符可构成复合赋值符。如+=,-=,*=,/=,%=,=,=,=,^=,|=。 构成复合赋值表达式的一般形式为: 变量 双目运算符=表达式 它等效于 变量=变量 运算符 (表达式) 3.9 赋值运算符和表达式 例如:a+=5 等价于a=a+5 x*=y+7 等价于x=x*(y+7) r%=p 等价于r=r%p 复合赋值符这种写法,对初学者可能不习惯,但表达简洁,复合赋值语句编译处理时能提高编译效率并产生质量较高的目标代码。 【例3-22】 复合赋值举例 main() { int a=2; a%=4-1; a+=a*=a-=a*=3; printf(a=%d\n,a); /*a=0 等价于a=a+(a=a*(a=a-(a=a*3)))*/ a =12; a+=a-=a*a; printf(a=%d\n,a); /*a=-264 等价于a=a+(a=a-(a*a))*/ } 3.9 赋值运算符和表达式 3.9 赋值运算符和表达式 注意: 1)在进行赋值操作时,会发生类型转换。一般将取值范围小的类型转为取值范围大的类型是安全的,如int整数赋给long长整型;反之是不安全的,当然大类型的值在小类型能容纳的范围之内,则一般没问题。 3.9 赋值运算符和表达式 2)要注意C语言算术表达式与数学公式的不同。特别是乘号(*)不能省略。例如:数学式b2-4ac,相应的C语言表达式应该写成:b*b-4*a*c;C语言表达式中只能出现字符集允许的字符,例如数学πr2相应的C表达式应写成:3.14159*r*r或PI*r*r(其中PI是已经定义的符号常量);C语言表达式没有分子分母的表达形式,但可以通过加括号类似写成:(a+b)/(c+d)形式。 3.9 赋值运算符和表达式 3)C语言表达式只使用圆括号改变运算的优先顺序。可以使用多层圆括号,此时左右括号必须配对,运算时一般从内层括号开始,由内向外依次计算各层表达式的值。 3.10 逗号运算符和逗号表达式 在C语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。 其一般形式为:表达式1,表达式2,…, 表达式n 其求值过程是分别求两个表达式的值,并以表达式n的值作为整个逗号表达式的值,n大于等于2。 3.10 逗号运算符和逗号表达式 【例3-23】 逗号运算符示例。 main(){ int a=2,b=4,c=6,x,y; y=(x=a+b),(b+c); // 注意(,)运算优先级最低。 为此y的值不是10 printf(y=%d,x=%d,y,x); } 运行结果: 3.10 逗号运算符和逗号表达式 说明:本例中,因“’”运算优先级别最低,y为(x=a+b)的值,y并不是(b+c)的值,x是第一个表达式中a+b的值。对于逗号表达式还要说明几点: 1)逗号表达式一般形式中的表达式n 也可以又是逗号表达式。 例如:表达式1,(表达式2,表达式3) 形成了嵌套情形。 3.10 逗号运算符和逗号表达式 2)整个逗号表达式的值等于表达式n的值。程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要使用整个逗号表达式的值。 3)并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。 3.11 应用实例 3.11 应用实例 3.11 应用实例 3.11 应用实例 3.11 应用实例 3.11 应用实例 3.11 应用实例 3.11 应用实例 3.11 应用实例 3.11 应用实例 3.11 应用实例 说明:e结果的不同是源于两系统表达式求值规则的不同。VC++6.0中表达式之++或--运算是随着表达式一步步运算中逐步计算的;而Win-TC中表达式有++或--运算时,各变量“左++或--”运算先于表达式计算,变量得到确定值后参与整个表达式计算,之后各变量“右++或--”运算,得到各变量表达式计算后的最终确定值。 以上说明还有待读者进一步验
您可能关注的文档
- 第5课时小数乘小数(2004KB).ppt
- 新版PEP六年级英语上册Recycle2课件PEP新版小学英语六年级上册recycle2第一课时(2092KB).ppt
- 第5课时遵守法律依法自护第5课时遵守法律依法自护(2973KB).ppt
- 新版PEP五年级英语册Unit3BReadandwrite.新版PEP五年级英语册Unit3BReadandwrite(5853KB).ppt
- 第5课西方人文主义思想的起源(3080KB).ppt
- 新版PEP小学英语五年级上册Unit3Let'sspell..新版PEP小学英语五年级上册Unit3Let'sspell.(13080KB).ppt
- 第5课西方人文主义思想的起源上课文新(2798KB).ppt
- 新版pep英语小学三年级下册unit5doyoulikepears?课件(2321KB).ppt
- 第5课中古欧洲社会6份打包九年级历史上册第5课中古欧洲社会(1148KB).ppt
- 新版第8章节课件(6317KB).ppt
- 新编C语言程序设计课件第04章顺序结构程序设计(1069KB).ppt
- 第5章频域分析方法51频率特性及其表示法(638KB).ppt
- 新编C语言程序设计课件第05章选择结构程序设计(876KB).ppt
- 第5章频域分析方法52典型环节的频率特性(1293KB).ppt
- 新编C语言程序设计课件第06章循环结构程序设计(1059KB).ppt
- 新编C语言程序设计课件第07章数组及其应用(1617KB).ppt
- 第5章频域分析方法53系统开环频率特性(1063KB).ppt
- 新编C语言程序设计课件第08章函数及其应用(2748KB).ppt
- 第5章频域分析方法54用频率特性分析控制系统的稳定性(2242KB).ppt
- 新编C语言程序设计课件第09章指针及其应用(1813KB).ppt
最近下载
- 道德与法治六年级上册第四单元 法律保护我们健康成长 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx VIP
- 论实验动物的质量管理与控制.docx VIP
- (2024秋新版)北师大版一年级数学上册《可爱的校园》PPT课件.pptx VIP
- 《批判与创意思考》 教材配套PPT 第三章 是什么阻碍了你的思考.pptx VIP
- 麻疹病例教育课件.pptx VIP
- 第九章 冷热疗法课件.ppt VIP
- 2025年秋季新教材部编版小学道德与法治二年级上册全册道法最新教案(教学设计).docx
- 《旅游地理学》全套教学课件.ppt
- 汇德大厦材料二次转运方案.pdf VIP
- 城市公共空间设计教学提纲.ppt VIP
文档评论(0)