【发布时间】:2017-12-10 22:14:00
【问题描述】:
假设我们有下一个代码:
#include<iostream>
using namespace std;
int change(int &temp){
temp += 2;
return 10;
}
int main(){
int nmb = 2;
cout << change(nmb) << " " << nmb << endl;
}
我认为它应该像 cout 打印出 nmb 的新值一样工作,但它会打印旧版本的 nmb。
我得到的不是想要的结果 10 4,而是结果 10 2。 为什么 cout 会打印出 nmb 的旧值,因为 cout 先打印出变化,然后才打印出 nmb?
我是在g++下编译的,使用标准的c++11。
【问题讨论】:
-
cout << change(nmb) << " "; cout << nmb << endl;你得到你的结果
标签: c++