c语言的表达式中 a-=a-5 怎么理解 其中a=1

Python016

c语言的表达式中 a-=a-5 怎么理解 其中a=1,第1张

-=是C语言赋值运算符的一种,调用形式为

a-=b

其功能等效于

a = a-b

所以

a-=a-5会先计算a-5的值,再用a值减去这个值,最终赋值给a。

a-=a-5等效于

a= a-(a-5)

在a=1时,计算结果为

a = 1-(1-5) = 1-(-4) =5

事实上,从数学运算可以得出,

a-=a-5 = a-(a-5)= a-a+5=5

也就是这个表达式计算后,a的值是恒为5的。

在C语言中a-=b+c应该是a=a-(b+c)

-=的意思:

1、 -=是C语言中的一个复合运算符。 

2、 -=为双目运算, 形式为:A-=B表示含义为:A=A-B

C语言中复合赋值运算符 :

1、<<= 的意思是左移等。a<<=b其实就是a=a<<b.

2、 >>= 的意思是右移等。a>>=b其实就是a=a>>b.

3、&=  的意思是与等。a&=b其实就是a=a&b.

a-1和1-a是正确的表达方式。

第一个的表达方式不正确,一般在c语言中没有这种表达方式,第二个和第三个是普通的数学表达式,可以在c语言中表达。