C语言复合赋值运算符
在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。
复合运算要注意以下:
复合运算符左边必须是变量;
复合运算符右边的表达式计算完成后才参与复合赋值运算。复合运算符常用于某个变量自身的变化,尤其当左边的变量名很长时,使用复合运算符书写更方便。
复合赋值运算的优先级符合C语言运算符的优先级表,结合方向为从右到左。
-
C语言自增(++)和自减(--)
C语言源自KenThompson发明的B语言,那么大家知道C语言自增(++)和自减(--)是什么呢?下面一起来看看!一个整数自身加一可以这样写:a+=1;它等价于a=a+1;。但是在C语言中还有一种更简单的写法,就是a++;或者++a;。这种写法叫做自加或自增;意思很明确,就是自身加一。相应...
-
c#实现sunday算法实例
Sunday算法思想跟BM算法很相似,在匹配失败时关注的是文本串中参加匹配的最末位字符的下一位字符,下面小编为大家整理了c#实现sunday算法实例,希望能帮到大家!因正则表达式搜索总是出现死循环,开始考虑改为其他搜索方式,因为自带的IndexOf默认只能找到第一个或最后一...
-
C++跳转语句之Goto对变量定义的影响详解
goto语句也称为无条件转移语句,以下是为大家分享的C++跳转语句之Goto对变量定义的影响详解,供大家参考借鉴,欢迎浏览!前言goto语句也称为无条件转移语句,其基本形式如下:语句标号由一个有效地标识符和符号";"组成,其中,标识符的命名规则与变量名称相同,即由字母、数字...
-
如何在c语言中调用Linux脚本
如何在c语言中调用Linux脚本呢?你知道如何在c语言中调用Linux脚本吗?下面是小编为大家带来的如何在c语言中调用Linux脚本的知识,欢迎阅读。一、引言对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值。fork函数是Unix系...