printf与cout的有关问题
printf与cout的问题C/C++ codeint main(){int i2printf(%d,%d,%d,%d\n,i++,++i,i,i++)printf(%d\n,
printf与cout的问题
C/C++ codeint 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的值。