c语言中的int a=12;a+=a-=a*a

c语言中的int a=12;a+=a-=a*ac语言中的int a=12;a+=a-=a*a

先运算乘号,优先级3,a*a 此时结果144

a+=a-= x 这个式子是 由 a = a+() 和 a = a - () 复合而来 ()代表前面的式子

+= 和-=的优先级从右到左 所以先算 a-= 再算 a+= ,

所以式子其实是  

    a=a-a*a   -132 = 12-144 

    a = a+a    -264 = -132-132

答案 -264

另外,编译器不会说谎

追问

不是负的啊

追答

怎么不是负的

追问

a=a-a*a 132 = 12-144

这个不应该是-132吗?
就是疑问这个

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-10-20
int a=12;
/*声明并初始化后a的值为12*/
a/=a+a;
/*
复合赋值语句,右边表达式a+a的值为24。
结果相当于a=a/24,由于a是int型,/两边的运算数都是int型,所以作整除,12除以24商0余12,商赋值给a。
所以最后a等于0.
*/
----
[原创回答团]
第2个回答  2012-12-09
int a=12,a+=a-=a*=a

这个其实是错误的,按照这样那么对a初始化的部分是a+=a-=a*=a,但是a没有初始化,所以矛盾了,应该这样的吧;
int a=12;
a+=a-=a*=a;
那么a为0
a+=a-=a*=a可以一步步的分解

先算a*=a->a=a*a
a=12*12=144
再算:a-=a*=a,相当于a-=144->a=a-144,
a=0
再算a+=a-=a*=a,a+=0
a=0
a+=a-=a*=a就是赋值表达式,从右向左一步步算就好了
第3个回答  2018-04-20
可将其拆分为一下步骤:
int a1=a*a;
int a2=a-a1;
a=a+a2;追问

结果是-120吗

本回答被提问者采纳
第4个回答  2019-08-20
答案的确是-264

c语言中的int a=12;a+=a-=a*a
a+=a-= x 这个式子是 由 a = a+() 和 a = a - () 复合而来 ()代表前面的式子 += 和-=的优先级从右到左 所以先算 a-= 再算 a+= ,所以式子其实是 a=a-a*a -132 = 12-144 a = a+a -264 = -132-132 答案 -264 另外,编译器不会说谎 ...

C语言:int a=12; a+=a-=a*a 执行后..得到多少???...
所以计算后等于145

c语言 int a=12;表达式a+=a-=a*=a的值是多少
a -= a;a += a;

c语言 请问 int a=12则表达式a+=a-=a*a的值为什么等于-264 算完第...
看清楚了,a*a=144没错,但144并没有赋给a,所以a-=a*a是a=12-144=-132而不是a=144-144=0!

c语言中已知a=12则表达式a+=a-=a*=a的结果是什么?
结果是0 原因:从右向左进行 a*=a --->a = a*a;a-=a --->a = a-a \/\/这个是0哦 所以结果是0了。

c语言中,已知a=12,则表达式a+=a-=a*=a的结果是什么,求步骤
从右向左算 首先a的值是12 第一步:计算a*=a a=a*a=144 第二步:计算a-=144 a=a-144=0 第三步:计算a+=0 a=a+0=0

c语言问题,a=12,a+=a-=a*a为什么最后结果是0啊,怎么算的?谢谢!
从右边开始拆开:a+=a=a-a*a,带入:a+=a=12-144,所以a=-132 然后继续:a=a+a,带入:a=-132-132=-264 结果为0说明要不然是你式子写错了,要不然是你程序编错了

C语言表达式:a=12,那末a+=a-=a*a的多少呢?
楼上的算错了.赋值过程应该是从右往左的.算法如下:1.a-=a*a;即a-=12*12 .a=12-12*12=-132 2.a+=-132. a=-132-132=-264.

菜鸟求助 C语言题目:设a=12,求表达式a+=a-=a*=a的值与a+=a-=144有...
=是右结合的,a初值是12,执行a+=a-=a*=a;时是这样来执行的:a*=a;\/\/a值为144 a-=a; \/\/a值为0 a+=a; \/\/a值为0 运行完后a的值为0。如果再运行,则:a-=144; \/\/a的值为-144 a+=a; \/\/a的值为-288 即运行完结果是-288 若a+=a-=144;语句是在a初值为12的条...

C语言 a=12 a+=a-=a*=a的输出是什么? 是-120还是0
我这的结果貌似是0

相似回答