第4个回答 2019-07-14
int
a
,b,c,d;a
=
b
=
5;c
=(++a)+(++a)+(++a);d
=(b++)+(b++)+(b++); printf("%d,%d,%d,%d",a,b,c,d);
++a,a要加+1,c中有三个++a,所以要先运行三次++a,然后再进行三下+的运算,运行三次++a,即a=a+1->a=8
然后c=a+a+a=24,
d
=(b++)+(b++)+(b++); 先算三个+,然后再算三次b++,所以d=b+b+b=15
然后b++运行三次,b=8
所以a=8,b=8,c=24,d=15
第5个回答 2019-12-20
--y,++x,是先+1、-1,后计算表达式;而z--是先计算表达式,后减1
所以:计算顺序:
y=y-1,结果y=24
x=x+1,结果x=5
Z保持原值,z=2
所以:(--y/++x)*z--
=
(24/5)*2
=
4*2
=
8(暂存)
计算完后,Z=z+1=3;
然后,再执行z=8(将刚刚计算的Z=3覆盖)
注意:24/5,取整,结果是4