当前位置:编程学习 > JS >>

一段C代码,K为什么等于16?

#include <stdio.h>
void main()
{
int i=3,k;
k=(++i)+(++i)+(++i);
printf("k=%d\n",k);
}
补充:VC6.0下:i=6,k=16;;
V studio 05下:i=6,k=18;
用JavaScript脚本编写:i=6,k=15;
追问:就是在VC6.0试的
答案:
k==16 么  ..   我算怎么等于15么     你在机器上试了么 ??   
我可以很肯定是18
这个问题我曾经都遇到过,我问过我们老师,他说这个要看你的运行环境。根据运行环境的不同会有不同的值
不要写这样有歧义的程序,没有任何意义。
好像是先做三次自加1,然后做i+i+i吧。
原因:V studio 05下:编译的过程是先执行一次运算(即先++i为4再++为5在0再++为6),之后为i=6。然后执行二次运算,k=6+6+6为18.
用JavaScript脚本编写:为单步运行++i为4之后k=4+(++i)+(++i).然后为第二个++i为i=5。k=4+5+(++i).然后i=6。最后为k=4+5+6=15.
VC6.0下:i=6是肯定的,但我正在使用VC6.0,结果为15.
在这两种环境下,他们的结合性不同,答案肯定不同了

上一个:编程题 请高手帮忙
下一个:谁有visual studio.NET 2003合并集合这个查询手册啊?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,