a+=a-=a*a是一个连续赋值运算,计算顺序是自右至左的。
如果int a=2;
a+=a-=a*a;
相当于:
1.a-=a*a;
2.a+=a;
然后相当于:
1.a=a-a*a;
2.a=a+a;
由于a初始化为2:
1.a=a-a*a=2-2*2=-2;
2.a=a+a=-2+(-2)==-4;
所以最后结果就是-4。
扩展资料
C语言中提供常用赋值运算符:等号运算符。
1.计算赋值运算符右侧表达式的值。(“=”为赋值运算符)
2.将赋值运算符右侧表达式的值赋给左侧的变量。
3.将赋值运算符左侧的变量的值作为表达式的值。
赋值表达式是类似这样的句子:a=5 注意后边没有分号, a=5; 这就是一个赋值语句了。
赋值表达式的结果是最左边的赋值运算符(最左边的等号)左边的变量(或者表达式)的值。
赋值运算符的优先级和结合性
1.优先级较低,只比逗号运算符高。
2.从右向左结合。
例如:x=y=3 就相当于 x=(y=3) 结果都为3