这段程序的运行结果为什么是300 300,而不是100 300
- C/C++ code
#include<iostream>using namespace std;void main(){ int a=100; cout<<a<<" "<<(a=a+200)<<endl;}
[解决办法]
这是典型的未定义问题。
和 a=a++;
a=i+++++i;
之流一个类型。
所以,无论什么结果都是可能的。
同样,无论什么结果都是不可靠的。
因此,不要这么写
[解决办法]
运算符 有些 编译器 是从右开始计算,有些是从左。。。
[解决办法]
对于一个表达式中多次引用同一个变量,而其中的某些运算会导致变量值变化的情况,编译器不同就会有不同的结果,不必纠结,也不要去追究你现在的编译器用的什么规则,浪费时间的。