我有一堆这样的代码:
#include <iostream>
using namespace std;
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a;
int b;
a = 7;
b = 5;
swap(a, b);
cout << a << b;
return 0;
}
这段代码执行交换过程,就像我想要交换 2 个数字一样,但是当我想要来自用户的两个数字时,如下所示;
int a;
int b;
cin >> a;
cin >> b;
swap(a, b);
cout << a << b;
编译器给了我一个关于错误int
的int*
错误,这是预期的。尽管我没有使用带有运算符的方法,为什么第一个代码会进行正确的交换&
?