求大佬帮解
int a=3a+=a-=a*a;
运行结果为—12的运行逻辑 书写如此匪夷所思的代码不是自找不自在 wp231957 发表于 2022-11-10 15:21
书写如此匪夷所思的代码不是自找不自在
这是书上的案例{:10_266:}{:10_266:} 本帖最后由 jhq999 于 2022-11-10 15:32 编辑
3*3=9
a-=9
a=3-9=-6
a+=-6
a=-6+-6=-12
本帖最后由 jackz007 于 2022-11-10 15:33 编辑
a += a- = a*a
a -= a * a
a = a - a * a
a = 3 - 3 * 3
= -6
a += a
a = a + a
= -6 + -6
= -12 -12 这个结果是楼上几位所说这样得出来的,但是在 C 的语境下这段代码没有标准的运行结果,可以产生任何结果
如果书中出现这段代码不是为了说明这种写法是糟糕的,如果有机会,换一本书 赋值语句,从右往左看
1, a * a = 9 , 这里还没有赋值, a = 3
2, a -= 9 , a开始补赋值a = 3-9 ,a= -6
3, a += -6, a= -6+-6 = -12 谢谢大家,
页:
[1]