大家看看以下输出什么和为什么
- 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上太多了,高手都不屑一顾了