c语言问题:若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值为-12。请问怎么算的?

2020-09-25 科技 117阅读
运算顺序是从右到左。
a-=a*a; //这时 a=3-9=-6
a+=-6;// a=-6 + -6 =-12
其实这里涉及一个寄存器复用问题,在连续等号操作中,a占用的寄存器在中途被更改了,因此才有-6+-6 ,而不是3+-6
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com