c语言x+=x*=2什么意思

2025年03月19日 04:36
有2个网友回答
网友(1):

+=
指的是
x=x+?
*
=
指的是x=x*?
C语言的执行顺序是从右到左
x+=
(
x*=2
)
先计算右边的
x*=2


结果带入到x+=()中.

网友(2):

x+=a等价于x=x+a
赋值运算符当中,有一类c/c++独有的复合赋值运算符。它们实际上是一种缩写形式,使得对变量的改变更为简洁。
total=total+3;
它的意思是本身的值加3,然后在赋值给本身。为了简化,上面的代码也可以写成:
total+=3;
同样,x*=y+7
等价于x=x*(y+7)
r%=p
等价于r=r%p
复合赋值运算符有下列这些:
符号
功能
+=
加法赋值
-=
减法赋值
*=
乘法赋值
/=
除法赋值
%=
模运算赋值
<<=
左移赋值
>>=
右移赋值
&=
位逻辑与赋值
|=
位逻辑或赋值
^=
位逻辑异或赋值
那么看了上面的复合赋值运算符,有人就会问,到底total=total+3;与total+=3;有没有区别?答案是有的,对于a=a+1,表达式a被计算了两次,对于复合运算符a+=1,表达式a仅计算了一次。一般的来说,这种区别对于程序的运行没有多大影响,但是当表达式作为函数的返回值时,函数就被调用了两次(以后再说明),而且如果使用普通的赋值
运算符,也会加大程序的开销,使效率降低。