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

在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语言运算符的优先级表,结合方向为从右到左。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-09-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP在线

PHP数组操作汇总

对于Web编程来说,最重要的就是存取和读写数据了。存储方式可能有很多种,可以是字符串、数组、文件的形式等。数组,可以说是PHP的数据应用中较重要的一种方式。PH...

3254
来自专栏日常分享

Spring 学习笔记(七)—— 切入点表达式

  语法结构:   execution(   方法修饰符  方法返回值  方法所属类 匹配方法名 (  方法中的形参表 )  方法申明抛出的异常  )

601
来自专栏python3

python字符串

1.    S.find(substr,[start,[end]])    返回S中出现substr的第一个字母的标号,如果S中没有substr则返回-1,st...

962
来自专栏Android干货

Python函数式编程(一):高级函数

1122
来自专栏Petrichor的专栏

python: map函数

对 sequence 中的 item 依次执行 function(item),将 执行结果 组成一个 List 返回。

2402
来自专栏Python小屋

Python运算符is与==的区别

在Python中,关系运算符==用来测试两个对象的值是否相等,而同一性测试运算符is用来测试两个对象是否是同一个对象,如果两个变量是同一个对象,那么它们的内存地...

2364
来自专栏思考的代码世界

Python基础学习01天

2180
来自专栏大前端_Web

js浮点数加减乘除

版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/articl...

1613
来自专栏淡定的博客

python入门基础语法总结

1073
来自专栏吾爱乐享

java学习之数组元素排序,冒泡排序和选择排序

1184

扫码关注云+社区

领取腾讯云代金券