前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【编程基础】C语言复合赋值运算符

【编程基础】C语言复合赋值运算符

作者头像
程序员互动联盟
发布2018-03-14 15:42:07
3.6K0
发布2018-03-14 15:42:07
举报
文章被收录于专栏:程序员互动联盟
在C语言的赋值中有一种特殊的赋值运算符,就是复合赋值运算符。复合赋值运算符就是在赋值符“=”之前加上其它二目运算符可构成。比如大家可能最常看到这样的语句:

n += 5;

这个语句相当于:

n = n + 5;

C语言中有如下的复合赋值运算符:

n += a; 相当于n = n + a; n -= a; 相当于n = n - a; n *= a; 相当于n = n * a; n /= a; 相当于n = n / a; n %= a; 相当于n = n % a; n <<= a; 相当于n = n << a; n >>= a; 相当于n = n >> a; n &= a; 相当于n = n & a; n ^= a; 相当于n = n ^ a; n |= a; 相当于n = n | a;

注意:如果右边不只是一个变量而是一个表达式,则需要看成一个整体.

比如: n /= a * b + c >> d 相当于 n = n / (a * b +c >> d),右边作为一个整体加括号。

即使是有同样优先级的也需要,请看下面的情况:

int n = 3; int m = 13; n *= 12 / m;

如果不加括号而是直接写成另外一种:n = n * 12 / m,显然这个计算结果大于0,而上面的为0。

复合运算要注意以下:

  1. 复合运算符左边必须是变量;
  2. 复合运算符右边的表达式计算完成后才参与复合赋值运算。复合运算符常用于某个变量自身的变化,尤其当左边的变量名很长时,使用复合运算符书写更方便。
  3. 复合赋值运算的优先级符合C语言运算符的优先级表,结合方向为从右到左。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档