标签:nbsp gcc c++ ios 数列 highlight 表达式 但我 sha
c++中如果函数的参数列表包含多个实参,那么对参数的求值顺序是不确定的。
在谭浩强的《C++程序设计》(第二版)P94中提到,GCC对参数求值是按从右到左的顺序求值的。 但我实测并非如此。
#include <iostream> #include <iomanip> using namespace std; void test(int x, int y) { cout << ‘x‘ << x << " y" << y << endl; } int main() { int i = 3; test(i, i++); i = 3; test(i, ++i); i = 3; test(i++, i); i = 3; test(++i, i); return 0; }
这段程序的输出为:
x4 y3 x4 y4 x3 y4 x4 y4
由此可见,哪怕是对于同一编译器,参数的求值顺序也是不确定的。
在实际使用中,要尽量避免一个语句中包含多个表达式的情况,或者保证多个表达式之间不存在互相影响结果的情况。
标签:nbsp gcc c++ ios 数列 highlight 表达式 但我 sha
原文地址:http://www.cnblogs.com/Leon-Yan/p/7567766.html