#include <iostream>
int add_one_return(int a) {
return a++;
}
void add_one_ref(int &a) {
a++;
}
int main(int argc, char const *argv[]) {
int a1 = 5;
int a2 = 5;
a1 = add_one_return(a1);
add_one_ref(a2);
std::cout << a1 << " " << a2 << std::endl;
return 0;
}
但是当我运行它时,程序打印5 6
。我回去后将add_one_return
更改为:
int add_one_return(int a) {
return ++a;
}
它有效!为什么++a
有效但a++
无效? a++
是否有优势,因为我也在for循环中听到您要使用for(int i = 0; i < someVar; ++i) {}
,为什么a++
呢?
答案 0 :(得分:4)
a++
返回之前的a
,然后递增它,所以最初你的函数只返回参数然后加一个。
++a
递增变量然后返回,这就是你想要的。