首页 > 编程语言 >C++语言引用的介绍和示例

C++语言引用的介绍和示例

时间:2022-11-22 23:04:44浏览次数:34  
标签:函数 示例 引用 C++ 别名 ra 变量


 

       对于习惯使用C进行开发的程序员来说,在看到C++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中,它除了取地址,还有其它的用途,叫做引用(reference),引用是C++引入的新语言特性。

引用的概念

       引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。

       引用的声明方法:类型标识符 &引用名=目标变量名;

       例如:

              int a;

              int &ra=a;  // 定义引用ra,它是变量a的引用,即别名。

       说明:

       1)&在此不是求地址运算,而是起标识作用。

       2)类型标识符是指目标变量的类型。

       3)声明引用时,必须同时对其进行初始化,否则编译器会报错。

       4)引用声明后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。

              ra=1;  等价于  a=1;

       5)声明一个引用,不是新定义了一个新的变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。

       6)不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名。

引用可以用const修饰,表示只读,用这种方式声明的引用,不能通过引用对目标变量的值进行修改。

                int a;

                const int &ra=a;

                a=10;    // 可以

                ra=10;   // 不行

引用的应用

       引用的主要作用就是作为函数的参数。以前的C语言中函数参数传递是值传递,如果有大块数据作为参数传递的时候,采用的方案是数据的地址。但是在C++中,又增加了一种同样有效率的选择,就是引用。

       示例(book212.cpp)

      

C++语言引用的介绍和示例_C++语言

       运行结果

      

C++语言引用的介绍和示例_引用_02

       从以上的示例可以看出,传递引用给函数与传递指针的效果是一样的。这时,被调函数的参数就成为调用者调函数中的变量或对象的一个别名来使用,所以在被调函数中对引用的操作就是对目标变量的操作。

       在很多资料中,把引用的优点过于夸大,在我看来,引用的好处就是调用函数的时候,不用填写取地址符&,子函数中也不写取变量符*,结构体和类不用->取成员。我更倾向传递地址的方式,因为更直观,不管是在函数内部还是函数被调用的地方,一眼就能清楚是否是地址。

       引用还可以作为函数的返回值,但我不建议这么用,我实在看不出这样做有什么好处,那就没必要把事情搞得那么复杂,所以这里就不介绍了。

 

版权声明

作者:码农有道

如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!

如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!

标签:函数,示例,引用,C++,别名,ra,变量
From: https://blog.51cto.com/u_13748800/5878705

相关文章

  • C++语言string类介绍和示例
    在C语言中,用0结尾的字符数组表示字符串,C的字符串有一个问题,就是定义后大小不能改变,存入的内容只能比数组小,不能大,如果不小心存多了,会引起内存的溢出,这个问题让程序员很郁闷......
  • C++语言类和对象介绍和示例
     C++类和对象C语言中结构体(struct)是一种构造类型,可以包含若干成员变量,可以通过结构体来定义结构体变量。C++中的类(class)可以看成结构体的升级版,类也是一种构造类型,但是进......
  • C++语言函数重载详解和示例
     C++函数重载的概念在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如把变量的值写入文件,变量的类型int、long、double、char,需要通过参数把变量......
  • 从C语言到C++语言
      ​​C++​​​ 读作“C加加”,是“CPlusPlus”的简称。顾名思义,C++是在​​C语言​​的基础上增加新特性。从语法上看,C语言是C++的一部分,C语言代码几乎不用修改就......
  • C/C++语言学习的策略
    断章取义C语言出现50年了,有很多内容已过时,至少有百分之二十的内容没有实用价值。C++更过份,对程序员来说,至少有百分之七十的内容没有实用价值。Linux系统也是,命令上千个,对程......
  • C/C++程序员如何学习英语
       英语是程序员的重要技能,有多重要?比较重要,极其重要吗?也不一定。    我是高中毕业,在刚开始学习计算机的一两年,曾经买过许国璋英语四级和计算机英文方面的书籍......
  • C++学习笔记--引用与返回值
    //#include<iostream>//usingnamespacestd;////int&fun()//注意类型要保持一致//{// inta=12;//不能引用局部变量// returna;//}////intmain()//{// in......
  • C++学习笔记——交换
    //#include<iostream>//usingnamespacestd;//voidswap(int&a1,int&b1)//该情况下,将主函数中的a和b分别传递给了a1和b1,在引用的作用下,a和a1,b和b1分别共用一个空间,......
  • C++学习笔记——类
    //#include<iostream>//usingnamespacestd;////classFirst//在C++中,struck结构体是一个特殊的类////在类中,默认的访问修饰符为pr......
  • C++学习笔记——类中的访问修饰符
    //#include<iostream>//usingnamespacestd;////classSecond//{////访问修饰符的作用,提高代码的安全性//private://私有成员,只被该类的内部所调用,类内若不写......