我在代码中不断收到这两个错误
In function 'int main()': error: invalid initialization of non-const reference of type 'int&' from a temporary of type 'int' error: in passing argument 1 of 'void swapInt(int&, int&)'
但我遇到的真正问题是swapInt。我需要接受2个整数 然后用他们的参数切换他们的值,所以曾经的a现在是b 什么曾经b现在是一个。请帮忙!
void swapInt (int &a, int &b);
int main() {
int a = 1;
int b = 2;
swapInt(1, 2);
cout << a << " " << b;
return 0;
}
void swapInt (int &a, int &b) {
int c = a;
a = b;
b = c;
//cout << a << " " << b;
}
答案 0 :(得分:4)
您的函数使用变量的地址,但是您传入了数字常量。您需要传递以下变量:
void swapInt (int &a, int &b);
int main() {
int a = 1;
int b = 2;
swapInt(a, b);
cout << a << " " << b;
return 0;
}
void swapInt (int &a, int &b) {
int c = a;
a = b;
b = c;
//cout << a << " " << b;
}
答案 1 :(得分:0)
您已将该函数声明为“pass-by-reference”,因此在调用该函数时它需要一个变量。
您不能将整数值传递给通过引用获取参数的函数。