c语言中的运算符a+= a-= a*= a的值为?

如题所述

a+=a-=a*=a的值为0

解析:

左结合:先做a*=a, 因为a=10,a*=可写为a=a*a=100 此时a的值为100

a-=a 可写为a=a-a=0,此时a 的值为0

a+=a可写为a=a+a=0

综上:a+=a-=a*=a的值为0

扩展资料:

左结合性和右结合性:

C语言中各运算符的结合性分为两种:左结合性和右结合性。

例如:算术运算符的结合性是自左至右,即先左后右。

如有表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。

而自右至左的结合方向称为“右结合性”。 最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。

C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。(上文的优先级有分辨左右结合性)

参考资料来源:百度百科-运算符

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜