引用很容易与指针混淆,它们之间有三个主要的不同:
1.不存在空引用。引用必须连接到一块合法的内存。
2.一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
3.引用必须在创建时被初始化。指针可以在任何时间被初始化。
注意:引用传递可以改变值,通过引用或地址传递参数,使传递的参数在调用函数中被改变。
void swap(int* a, int* b){
int temp = *a;
*a = *b;
*b = temp;
}//这里需要注意了,不是直接交换指针地址,而是交换地址里面的值
int s = 5;
int& sPointor = s;
void swap2(int& a, int& b){
int temp = a;
a = b;
b = temp;
}
int a = 3;
int b = 4;
// swap(&a,&b);
swap2(a,b);
cout << "a = " << a << ";b = " << + b << endl;
最终结果都是:a = 4;b = 3
网友评论