首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这段程序的运行结果为什么是300 300,而不是100 300解决方案

2012-04-28 
这段程序的运行结果为什么是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;
之流一个类型。

所以,无论什么结果都是可能的。
同样,无论什么结果都是不可靠的。
因此,不要这么写
[解决办法]
运算符 有些 编译器 是从右开始计算,有些是从左。。。
[解决办法]
对于一个表达式中多次引用同一个变量,而其中的某些运算会导致变量值变化的情况,编译器不同就会有不同的结果,不必纠结,也不要去追究你现在的编译器用的什么规则,浪费时间的。

探讨

运算符 有些 编译器 是从右开始计算,有些是从左。。。

热点排行