C++的引用如何应用

这篇文章主要讲解了“C++的引用如何应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++的引用如何应用”吧!

C++中,引用就是一个变量的别名,它需要用另一个变量或对象来初始化自身。引用就像一个人的外号一样,例如:有一个人,他的名字叫做张旭,因他在家排行老三,别人给他取了一个外号叫张三,这样,我们叫张三或张旭,指的都是同一个人。下面的代码声明了一个引用b,并用变量a进行了初始化。

int a = 5;  int &b = a; //用&表示申明一个引用。引用必须在申明时进行初始化

考虑下面代码:

int a = 5;  int &b = a;  int c=3; //此处并不是将b变成c的引用,而是给b赋值,此时,b和a的值都变成了3

引用和用来初始化引用的变量指向的是同一块内存,因此通过引用或者变量可以改变同一块内存中的内容。引用一旦初始化,它就代表了一块特定的内存,再也不能代表其他的内存。

那么引用和指针变量有什么区别呢?

引用只是一个别名,是一个变量或对象的替换名称。引用的地址没有任何意义,因此C++没有提供访问引用本身地址的方法。引用的地址就是它所引用的变量或者对象的地址,对引用的地址所做的操作就是对被引用的变量或对象的地址所做的操作。指针是地址,指针变量要存储地址值,因此要占用存储空间,我们可以随时修改指针变量所保存的地址值,从而指向其他的内存。

引用和指针变量的内存模型如下图所示:

C++的引用如何应用

在编写程序时,很少直接使用引用,即用一个变量来初始化一个引用(int a; int &b=a),如果这么做,通过变量和引用都可以修改同一块内存的内容,在程序中,就很容易出现问题,不知道此时内存中的值到底是多少了。

引用多数用在函数的形参定义上,在调用函数传参时,我们经常使用指针传递,一是避免在实参占较大内存时发生值的复制,二是完成一些特殊的作用,例如,要在函数中修改实参所指向内存中的内容。同样,使用引用作为函数的形参也能完成指针的功能,在有些情况下还能达到比使用指针更好的效果。

下面,我们以一段程序的讲解作为引用这一小节的结束。

例:

#include <iostream.h>  //change函数主要用来交换a和b的值  void change(int& a,int& b);  void main()  {  int x=5;  int y=3;  cout<<"original x="<<x<<endl;  cout<<"original y="<<y<<endl;  change(x,y);   //此处如果用指针传递,则调用change(&x, &y),这样很容易让人迷惑,不知道交换的是x和y的值,还是x和y的地址?此处用引用,可读性就比指针要好  cout<<"changed x="<<x<<endl;  cout<<"changed y="<<y<<endl;  }  /*在change()函数的实现中,我们采用了一个小算法,完成了a和b值的交换,读者下来可以仔细研读,细细体味一下(读者还可以采用其他的方法,当然也可以直接使用通常的实现,定义一个临时变量,完成a和b值的交换)*/ void change(int& a,int& b)  {  a=a+b;  b=a-b;  a=a-b;  }

感谢各位的阅读,以上就是“C++的引用如何应用”的内容了,经过本文的学习后,相信大家对C++的引用如何应用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/237505.html

(0)
上一篇 2022年1月29日
下一篇 2022年1月29日

相关推荐

发表回复

登录后才能评论