【发布时间】:2012-11-04 08:43:52
【问题描述】:
我有一堆这样的代码:
#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* 的错误,这是预期的。为什么我没有使用 & 运算符的方法,但第一个代码进行了正确的交换?
【问题讨论】:
-
第二个sn-p不会导致我的g++-5.5和clang++-11.0.0编译错误