■在C语言中,使用指针(Pointer) 可以间接获取、修改某个变量的值
■在C+ +中,使用引用(Reference) 可以起到跟指针类似的功能
int age = 20;
// rage就是一一个引用
int &rage = age;
■注意点
- 引用相当于是变量的别名(基本数据类型、枚举、结构体、类、指针、数组等,都可以有引用)
- 对引用做计算,就是对引用所指向的变量做计算
- 在定义的时候就必须初始化,一旦指向了某个变量,就不可以再改变,“从一而终"
void swap*(int &a,int &b){
...//省略代码
}
int a = 10;
int b = 20;
swap(a,b);
//a和b的值交换了。因为传递的是引用而不是值
对比指针,引用更安全,不会指向非法地址。
引用的本质
- 引用就是弱化了的指针
也就是说,c++编译器令你可以更精简的使用指针。 - 一个引用占一个指针内存大小。
引用和指针的汇编码是一样的。
回顾数组指针
常引用
-
引用也可以被const修饰,这样就不能修改数据了。
int sum(const int &v1,const int &v2){
}
sum(a,b);
//只有把引用设置为常引用时,才可以传入常量。
sum(19,20);
-
当常引用指向了不同类型数据的时候,会产生临时变量,即所指向的变量不是
这里运行后,会发现age 是10.rAge是30.原因是什么了?