可能重複:
Order of evaluation of arguments using std::cout請解釋這個歧義嗎?
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
static int series_num;
void setint(int num) {
series_num = num;
}
int ser() {
series_num = series_num + 23;
return series_num;
}
int main() {
setint(50);
cout << ser() << " " << ser();
getchar();
getchar();
return 0;
}
返回我96 73
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
static int series_num;
void setint(int num) {
series_num = num;
}
int ser() {
series_num = series_num + 23;
return series_num;
}
int main() {
setint(50);
cout << ser();
cout << ser() << endl;
getchar();
getchar();
return 0;
}
返回我73和96
另外查找[「序列點」](http://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points)這裏在stackoverflow上。 – Benoit 2012-02-21 12:27:25
與以下內容相同:http://stackoverflow.com/questions/7718508/order-of-evaluation-of-arguments-using-stdcout – ArjunShankar 2012-02-21 12:33:32