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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 5,703评论 0 4
  • 最全的iOS面试题及答案 iOS面试小贴士 ———————————————回答好下面的足够了-----------...
    zweic阅读 7,625评论 0 73
  • 第十章 指针 1. 地址指针的基本概念: 在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为...
    坚持到底v2阅读 4,733评论 2 3
  • C++ Primer Plus C++,贝尔实验室Bjarne Stroustrup设计的编程语言。C++ Pri...
    gb_QA_log阅读 5,127评论 0 1
  • 貌似风陵渡一点也不出名,在陕晋交界的黄河岸边,有誉满全国的壶口瀑布、鹳雀楼等著名旅游点,相比而言风陵渡真的是几乎没...
    Adolf_chuan阅读 5,840评论 0 2