c++之reference(引用)

■在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++编译器令你可以更精简的使用指针。
  • 一个引用占一个指针内存大小。
image.png

引用和指针的汇编码是一样的。

回顾数组指针

image.png

常引用

  • 引用也可以被const修饰,这样就不能修改数据了。


    image.png
int sum(const int &v1,const int &v2){
}

sum(a,b);
//只有把引用设置为常引用时,才可以传入常量。
sum(19,20);
image.png
image.png
  • 当常引用指向了不同类型数据的时候,会产生临时变量,即所指向的变量不是
    这里运行后,会发现age 是10.rAge是30.原因是什么了?


    image.png

    image.png

你可能感兴趣的:(c++之reference(引用))