a为int类型,且其值为3,a+=a-=a*a 跑完等于 -3 先进行a-=a*a a=a-a*a a=-6此时a=-6a+=aa=a+a=-12我知道应该是这样算,我以前也是这么认为的,不过我跑了之后结果是-3是不是等于-3,为什么不是等于-12
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/30 10:36:39
xT[OA+RY_hv
ThiMՂxD!Bl-
gvfǧe[&ڤOsf;ߜpjYM3'xox6R_EGϖqm>Yf}x&K/vhi; s݅TLF,HHv/_N`sdN/Ḫm0pfqnjV+Kkޞ$%˜Zx)o]` K/Bi rgIU>JDҩ_p78:uD}ȍn+ݰj'}W(V/_GCKOFվX&zʲ(bL2&MNbq
%ٷ~q¨ql:>PN*<$NQIт((Hb&!M5-x
q|c i ˢ )?KPrW\$:d]/#.r&R6Z"`\8tJ;EYZPc-#Z5
/4}ʸ _Kd7hd3>Y-
Ȯ
U@@AO(cuf=tQN *2$g8ݭZM
\D27
v.ho?,Uhh@;7Y]{A6W"Yo.wܫhw7R
a为int类型,且其值为3,a+=a-=a*a 跑完等于 -3 先进行a-=a*a a=a-a*a a=-6此时a=-6a+=aa=a+a=-12我知道应该是这样算,我以前也是这么认为的,不过我跑了之后结果是-3是不是等于-3,为什么不是等于-12
a为int类型,且其值为3,a+=a-=a*a 跑完等于 -3
先进行a-=a*a a=a-a*a a=-6
此时a=-6
a+=a
a=a+a=-12
我知道应该是这样算,我以前也是这么认为的,不过我跑了之后结果是-3
是不是等于-3,为什么不是等于-12啊.
a为int类型,且其值为3,a+=a-=a*a 跑完等于 -3 先进行a-=a*a a=a-a*a a=-6此时a=-6a+=aa=a+a=-12我知道应该是这样算,我以前也是这么认为的,不过我跑了之后结果是-3是不是等于-3,为什么不是等于-12
你说的只是你的理解,而不是C语言.
C语言的赋值语句并没有说明发生效果的时机.
你认为执行完a-=a*a之后,a的值就应该是-6了,但是这是你的理解.
因为a=3,所以可以在一开始就把算式改写成:
a=3-(3*3)
a=3+(3-3*3);
显然无论哪种方式,a都可以获得确定的值.
实际上你只要记住,赋值语句的级别很低,C语言的编译器一般优先关注表达式的值,而不是赋值语句.