首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

printf与cout的有关问题

2012-05-14 
printf与cout的问题C/C++ codeint main(){int i2printf(%d,%d,%d,%d\n,i++,++i,i,i++)printf(%d\n,

printf与cout的问题

C/C++ code
int main(){int i=2;printf("%d,%d,%d,%d\n",i++,++i,i,i++);printf("%d\n",i);    return 0;}void main(){ int i=2; cout<<i++<<++i<<i<<i++<<endl; cout<<i<<endl;}

谁能来详细解释下以上两段代码输出什么吗,为什么会这样输出,求指导!

[解决办法]
http://topic.csdn.net/u/20110826/09/601ebe9c-c2ae-4d63-a4e2-506c618bb654.html?14383


每天都有人问...
[解决办法]
不要在同一个表达式中使用++或--超过一次,这样的行为会随着编译器的改变而改变。

换言之,这样的问题没有意义。
[解决办法]
典型的未定义行为。
参考下面链接中的文章:
C,C++表达式求值顺序 裘老的解释
[解决办法]
日经贴,请楼主参看文章解释:


探讨

http://topic.csdn.net/u/20110826/09/601ebe9c-c2ae-4d63-a4e2-506c618bb654.html?14383


每天都有人问...

[解决办法]
探讨

日经贴,请楼主参看文章解释:


引用:

http://topic.csdn.net/u/20110826/09/601ebe9c-c2ae-4d63-a4e2-506c618bb654.html?14383


每天都有人问...

[解决办法]
日经贴
[解决办法]
不同的编译器有不同的答案。
[解决办法]
不同的编译器有不同的答案。
[解决办法]
前++直接改变变量的值;后++先生成一个中间变量,将原来的值放在中间变量中,然后变量的值加1,所以i++的值为中间变量的值,即原来变量的值而++i的值为i+1的值。

热点排行