printf与cout的有关问题
printf与cout的问题
谁能来详细解释下以上两段代码输出什么吗,为什么会这样输出,求指导!
------解决方案--------------------
http://topic.****.net/u/20110826/09/601ebe9c-c2ae-4d63-a4e2-506c618bb654.html?14383
每天都有人问...
------解决方案--------------------
不要在同一个表达式中使用++或--超过一次,这样的行为会随着编译器的改变而改变。
换言之,这样的问题没有意义。
------解决方案--------------------
典型的未定义行为。
参考下面链接中的文章:
C,C++表达式求值顺序 裘老的解释
------解决方案--------------------
日经贴,请楼主参看文章解释:
------解决方案--------------------
------解决方案--------------------
日经贴
------解决方案--------------------
不同的编译器有不同的答案。
------解决方案--------------------
不同的编译器有不同的答案。
------解决方案--------------------
前++直接改变变量的值;后++先生成一个中间变量,将原来的值放在中间变量中,然后变量的值加1,所以i++的值为中间变量的值,即原来变量的值而++i的值为i+1的值。
- 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.****.net/u/20110826/09/601ebe9c-c2ae-4d63-a4e2-506c618bb654.html?14383
每天都有人问...
------解决方案--------------------
不要在同一个表达式中使用++或--超过一次,这样的行为会随着编译器的改变而改变。
换言之,这样的问题没有意义。
------解决方案--------------------
典型的未定义行为。
参考下面链接中的文章:
C,C++表达式求值顺序 裘老的解释
------解决方案--------------------
日经贴,请楼主参看文章解释:
------解决方案--------------------
------解决方案--------------------
日经贴
------解决方案--------------------
不同的编译器有不同的答案。
------解决方案--------------------
不同的编译器有不同的答案。
------解决方案--------------------
前++直接改变变量的值;后++先生成一个中间变量,将原来的值放在中间变量中,然后变量的值加1,所以i++的值为中间变量的值,即原来变量的值而++i的值为i+1的值。