a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 60|回复: 0

[C语言] 2012计算机等考二级C语言辅导之复合赋值表达式

[复制链接]
发表于 2012-7-31 21:48:08 | 显示全部楼层 |阅读模式
在赋值运算符之前加上其他运算符可以构成复合赋值运算符。C语言规定可以使用10种复合赋值运算符,其中与算术运算有关的复合赋值运算符有:+=、-=、*=、/=、%=(注意:两个符号之间不可以有空格)。复合赋值运算符的优先级与赋值运算符的优先级相同。表达式n+=1的运算规则等价于n=n+1,表达式n*=m+3的运算规则等价于n=n*(m+3),因为运算符“+”的优先级高于复合赋值运算符“*=”。其他以此类推。6 t4 k+ B1 [* o6 u" x6 J+ M7 ^( |6 n4 P
  例2.3  已有变量a,其值为9,计算表达式a+=a-=a+a的值。
( H$ ]2 u$ N& J( M" ^" u  因为赋值运算符与复合赋值运算符“-=”和“+=”的优先级相同,且运算方向自右至左,所以:' O* C, X% o: l' T3 I8 K
  (1)先计算“a+a”;因a的初值为9,所以该表达式的值为18,注意a的值求变。
! k" r/ a& n2 \/ e& s0 _: g' u# z  (2)再计算“a-=18”,此式相当于“a=a-18”,因a的值仍为9,所以表达式的值为-9,注意a的值已为-9。3 i. c/ o- x: J( i6 T" `( {
  (3)最后计算“a+=-9”,此式相当于“a=a+(-9)”,因a的值此时已是-9,所以表达式的值为-18。1 O) u$ P0 ]& g% h2 q
  由此可知,表达式a+=a-=a+a的值是-18。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-22 16:48 , Processed in 0.337605 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表