请教!
main()
{ int i=1;s=0;
s=(++i)+(++i)+(++i)+(++i);
printf("%d",s);
结果是多少啊 为什么!?还有(i++)+(i++)(i++)+(i++);
两个都是8吧,我猜,因为你用了括号。
哎```这种问题只有在考试的时候才会有~~
我觉得也应该是8 在相加前i先自增1 然后再进行运算
第二个也差不多 都是自增运算
第一个是14
第二个是10
我知道结果!但是为什么啊!
想不通(i++)+(i++)(i++)我知道什么意思
另一个请解释也下
这是依系统而定的,有的系统按照自左向右顺序求解括弧内的运算,求完第1个括弧的值后,实现i的自加,i值变为2,再求第2个括弧的值,直到最后一个括弧,结果表达式相当于1+2+3+4=10,说明:定义 i=1 ;a=i++,此时a=1而不是2,先把i的初始值赋给a,然后i做自加,i=2。但在有的系统(MS C )会得出8的结果。另外一个:表达式相当于2+3+4+5=14,说明:定义i=1,a=++i,此时a=2而不是1,i先做自加完再赋值给a,i=2。
答案是20,前++是先自加后运算,后++是后运算先自加
有没有括号不影响的,++的优先级本来就很高。
????
在vc++6.0上显示结果是15啊?