c ++初学者错误,作业

时间:2012-03-25 01:56:42

标签: c++

我在代码中不断收到这两个错误

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;
}

2 个答案:

答案 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”,因此在调用该函数时它需要一个变量。

您不能将整数值传递给通过引用获取参数的函数。