在C语言中复合赋值运算符有什么样的作用?
2个回答
2022-07-26 · 学动漫、设计、电竞、电商、短视频、软件等
关注
展开全部
在赋值运算符当中,还有一类C/C++独有的复合赋值运算符。它们实际上是一种缩写形式,使得对变量的改变更为简洁。
Total=Total+3;
乍一看这行代码,似乎有问题,这是不可能成立的。其实还是老样子,'='是赋值不是等于。它的意思是本身的值加3,然后在赋值给本身。为了简化,上面的代码也可以写成:
Total+=3;
复合赋值运算符有下列这些:符号 功能
+=加法赋值 =减法赋值 *=乘法赋值 /=除法赋值 %=模运算赋值 左移赋值 ルAA
右移赋值 &=
位逻辑与赋值 位逻辑或赋值 =1
=位逻辑异或赋值
上面的十个复合赋值运算符中,后面五个我们到以后位运算时再说明。那么看了上面的复合赋值运算符,有人就会问,到底Total=Total+3;与Tota
tal+=3;
有没有区别? 答案是有的,对于A=
A=A+1
+1,表达式A被计算了两次,对于复合运算符
A+=1
,表达式A仅计 算了一次。一般的来说,这种区别对于程序的运行没有多大影响,但是当表达式作为函数的返回值时,函数就被调用了两次(以后再说明),而且如果使用普通的赋值运算符,也会加大程序的开销,使效率降低。
Total=Total+3;
乍一看这行代码,似乎有问题,这是不可能成立的。其实还是老样子,'='是赋值不是等于。它的意思是本身的值加3,然后在赋值给本身。为了简化,上面的代码也可以写成:
Total+=3;
复合赋值运算符有下列这些:符号 功能
+=加法赋值 =减法赋值 *=乘法赋值 /=除法赋值 %=模运算赋值 左移赋值 ルAA
右移赋值 &=
位逻辑与赋值 位逻辑或赋值 =1
=位逻辑异或赋值
上面的十个复合赋值运算符中,后面五个我们到以后位运算时再说明。那么看了上面的复合赋值运算符,有人就会问,到底Total=Total+3;与Tota
tal+=3;
有没有区别? 答案是有的,对于A=
A=A+1
+1,表达式A被计算了两次,对于复合运算符
A+=1
,表达式A仅计 算了一次。一般的来说,这种区别对于程序的运行没有多大影响,但是当表达式作为函数的返回值时,函数就被调用了两次(以后再说明),而且如果使用普通的赋值运算符,也会加大程序的开销,使效率降低。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询