[问题已解决][求助]一道简单的题
main(){ int i=3,c;
c=(i++)+(++i)+(i++);
printf("%d",c);
}
运行的结果是12
可是我觉得,
第一个括号i++是先取i的值3然后i加1
第二个括号是先对i加1在取值5
第三个括号是先取i的值5再让i加1
但这样的话结果是13 i的值是6
为什么上机调试是12呢?
[此贴子已经被作者于2006-8-2 18:21:13编辑过]
[此贴子已经被作者于2006-8-2 18:21:13编辑过]
你可以看看课本上的例子,上面好像是这样写的c=(i++)+(i++)+(i++) i=3
我觉的也应该是13,可是我没有现成的工具运行一下,各位兄弟可以运行一下吗!相信自己的调试结果!
我刚刚验证 结果是12
我知道了!
大家不能那这个题一步一步的看, 要把它看做一个整体
(i++)i=3
(++i)i=4
(i++)先取i的值 i=4;
然后 在 c=4+4+4=12;
最后 在i加上前面的两个 i++没有加的值 i就等于6
所以 C=12;I=6;
只能这么解释了