版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Xiblade/article/details/81174376
using namespace std;
# include <cstdio>
// 使用指针交换两个值
void change(int *a , int *b){
int tmp = *b;
*b = *a;
*a = tmp;
}
// 使用指针的引用交换两个指针
void changePoint(int *&a, int *&b){
int *tmp = a;
a = b;
b = tmp;
}
// 使用引用交换两个值
void changeReference(int &a ,int &b){
int tmp = a;
a = b;
b = tmp;
}
int main(int argc, char** argv) {
int a = 6;
int b = 8;
int *p1 = &a;
int *p2 = &b;
// change(a, b);
// changePoint(p1, p2); 正确
// changePoint(&a, &b); [Error] invalid initialization of non-const reference of type 'int*&' from an rvalue of type 'int*'
// printf("%d, %d", *p1, *p2);
changeReference(a, b);
printf("%d, %d", a, b);
}