读书人

大家看看以下输出什么和为什么解决办法

发布时间: 2012-06-11 17:42:22 作者: rapoo

大家看看以下输出什么和为什么

C/C++ code
        int i = 0, j = 0;        i = 0;        j = (i++) + (i++) + (i++);        cout << j << endl;        i = 0;        j = (++i) + (++i) + (++i);        cout << j << endl;        i = 0;        cout << (i++) << ends << (i++) << ends << (i++) << endl;        i = 0;        cout << (++i) << ends << (++i) << ends << (++i) << endl;        i = 0;        printf("%d %d %d\n", i++, i++, i++);        i = 0;        printf("%d %d %d\n", ++i, ++i, ++i);


[解决办法]
j = (i++) + (i++) + (i++); 这种在一个表达式里有多个对同一变量赋值的表达式是未定义的,编译器输出什么都是正确的。。

就算j等于10000也是正确,纠结这个干嘛

去看看这个把
http://topic.csdn.net/u/20110826/09/601ebe9c-c2ae-4d63-a4e2-506c618bb654.html

这种水贴CSDN上太多了,高手都不屑一顾了

读书人网 >C++

热点推荐