c语言 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 A) -3 B) 9 C) -12

c语言 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 A) -3 B) 9 C) -12 D) 6
根据+、-、*、=的优先级和结合性,是不是应该是这样一个运算过程:
=(a+=a-=9)
=((a=a+a)-=9) /*因为a初值为3,这步运算完以后a为6*/
=(a-=9)
=(a=a-9)
=(a=-3)
由此算得a=-3,选A,
猪佬一号 1年前 已收到1个回答 举报

eoritfnsla 幼苗

共回答了20个问题采纳率:85% 举报

先算:a-=a*a,其等价于
a=a-a*a
=3-3*3
=-6
再算a+=-6,其等价于
a=a+(-6)
=(-6)+(-6)
=-12

1年前 追问

10

猪佬一号 举报

+ -的优先级相同 可是结合性是自左至右啊,这个题算完*以后不就应该按+ -的结合性自左至右运算么?

举报 eoritfnsla

+= -= 不是加,减运行,是赋值运算。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.013 s. - webmaster@yulucn.com