读书人

【6.29第2问】自学C语言每日多问一点

发布时间: 2012-07-08 17:43:44 作者: rapoo

【6.29第2问】自学C语言,每天多问一点,每天进步一点,各位热心人士请多关照
main(){
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
getch();
}
同样的程序在WINTC上面运行和VC上面运行结果不一样,据说WINTC是根据从右到左的顺序计算的,
VC是根据从左到右的顺序,WINTC的结果可以理解,但是VC的结果
8(问题1:++i,是先运算后执行,按道理算出来的应该是9,但为何显示的8呢?)
7(问题2:--i,同理也是先运算,按道理算出来的应该是8,但为何显示的7呢?)
8(问题同上)
8(问题同上)
-8(问题同上)
-8(问题同上)


[解决办法]
"据说"=="不确定"

这种行为本身就是未定义的。

[解决办法]

探讨
main(){
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
getch();
}
同样的程序在WINTC上面运行和VC上面运行结果不一样,据说WINTC是根据从右到左的顺序计算的,
VC是根据从左到右的顺序,WINTC的结果可以理解,但是VC的结果
8(问题1:++i……

[解决办法]
研究这些没有意义,有点钻牛角尖的味道。
[解决办法]
探讨

引用:
main(){
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
getch();
}
同样的程序在WINTC上面运行和VC上面运行结果不一样,据说WINTC是根据从右到左的顺序计算的,
VC是根据从左到右的顺序,WINTC的结果可以理解,但是VC的结果
8(问题1:……

读书人网 >C++

热点推荐