这段程序的运行结果为什么是300 300,而不是100 300解决方案
这段程序的运行结果为什么是300300,而不是100300C/C++ code#includeiostreamusing namespace stdvoid m
这段程序的运行结果为什么是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;
之流一个类型。
所以,无论什么结果都是可能的。
同样,无论什么结果都是不可靠的。
因此,不要这么写
[解决办法]运算符 有些 编译器 是从右开始计算,有些是从左。。。
[解决办法]对于一个表达式中多次引用同一个变量,而其中的某些运算会导致变量值变化的情况,编译器不同就会有不同的结果,不必纠结,也不要去追究你现在的编译器用的什么规则,浪费时间的。