灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2735回复:0

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

楼主#
更多 发布于:2012-08-22 13:51

在赋值运算符之前加上其他运算符可以构成复合赋值运算符。C语言规定可以使用10种复合赋值运算符,其中与算术运算有关的复合赋值运算符有:+=、-=、*=、/=、%=(注意:两个符号之间不可以有空格)。复合赋值运算符的优先级与赋值运算符的优先级相同。表达式n+=1的运算规则等价于n=n+1,表达式n*=m+3的运算规则等价于n=n*(m+3),因为运算符“+”的优先级高于复合赋值运算符“*=”。其他以此类推。
  例2.3  已有变量a,其值为9,计算表达式a+=a-=a+a的值。
  因为赋值运算符与复合赋值运算符“-=”和“+=”的优先级相同,且运算方向自右至左,所以:
  (1)先计算“a+a”;因a的初值为9,所以该表达式的值为18,注意a的值求变。
  (2)再计算“a-=18”,此式相当于“a=a-18”,因a的值仍为9,所以表达式的值为-9,注意a的值已为-9。
  (3)最后计算“a+=-9”,此式相当于“a=a+(-9)”,因a的值此时已是-9,所以表达式的值为-18。
  由此可知,表达式a+=a-=a+a的值是-18。

喜欢0 评分0
游客

返回顶部