C程序一个题

来源:百度知道 编辑:UC知道 时间:2024/06/21 02:44:28
#include"stdio.h"
main()
{
int i=0,j=0,k=0,v=0;
j=(++i)+(++i)+(++i);
printf("%d %d",i,j);
}
这个题目为什么答案是 3 7?
为什么不是 3 9?
中间的计算过程是怎么样的 请知道的朋友明示 谢谢~
额....我是用的VC 现在计算机2级考试用的是VC作为调试程序..
1+2+4=9 3楼的这个不懂诶 麻烦解释哈 谢谢
我到觉得3 9这个有道理 因为
#include"stdio.h"
main()
{
int i=0,j=0,k=0,v=0;
j=(++i)+(++i)+(++i);
k=(++i)+(++i);
v=(++i)+(++i);
printf("%d %d %d %d",i,j,k,v);
}
这个输出来的是 7 7 10 14 k行为5+5和v行为7+7可以理解
但若换作
#include"stdio.h"
main()
{
int i=0,j=0,k=0,v=0;
j=(++i)+(++i)+(++i);
k=(++i)+(++i)+(++i);
v=(++i)+(++i);
printf("%d %d %d %d",i,j,k,v);
}
时输出 8 7 16 16 又不能理解了....

首先我必须要说这真的是个无聊的问题 我知道很多大学教师也在总结这个的规律 说++i i++这些的混合运算的规律性 但其实这个是随着你所使用的编译器的不同而结果会有所不同 这个具有不确定性,具有未知性 那些教师会那样讲大多是因为他们使用的都是TurboC 从而只是总结了TurboC的规律 如果你使用别的编译器 结果很有可能就不同 比如我知道的Linux下的GCC的某些版本和TurboC就会产生不同的结果
你可以参看下这里 http://c-faq-chn.sourceforge.net/ccfaq/node38.html
http://c-faq-chn.sourceforge.net/ccfaq/node39.html

我在TURBOC 2.0下结果是3 9

我在Development System Release 5.1.2A下的结果也是3 9

我几乎可以肯定你的答案是错的。

楼上是一大宗师?????

刷出来的吧。。。。

正确答案是:3 7

我运行的VC是3 7;
#include"stdio.h"
main()
{
int i=0,j=0,k=0,v=0;
j=(++i)+(++i)+(++i); //j很明显是7,怎么可能是9,1+2+4=9????笑话
printf("%d %d",i,j); //i很明显是3
}

VC下运行是3 7。
TC下是 3 9。
至于为什么,额,不是很清楚