C++学习笔记(二)

C++的引用

简介

定义:引用变量是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,对引用的操作与对变量直接操作就是一样的。

声明方法:目标变量的类型 &引用名=目标变量名;
引用声明完毕后,相当于目标变量有两个名称,即该目标原名称和引用名,且该引用名不能再作为其他变量的引用名。

例子int& a=i;说明a是一个初始化为i的整型引用。
double& b=m;说明b是一个初始化为m的double型引用。

引用与指针的不同

  • 存在空指针但不存在空引用。引用必须连接到一块合法的内存。
  • 指针可以在任意时刻指向任一对象。但是引用一旦被初始化,就不能被指向到另一对象。
  • 指针可以在任何时间被初始化,但引用必须在创建时被初始化。

注意:(1)声明一个引用,不是新定义一个变量,它只表示该引用名是目标变量名的一个别名,因为引用不是一种数据类型,所以引用本身不占存储单元,系统也不给引用分配存储单元。所以,引用的地址与目标变量的地址相同。
(2)不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名。

应用

引用作为函数的参数

先看一个典型的例子:

void swap(int &p1, int &p2) //此处函数的两个形参都是引用
{ 
	int p; 
	p=p1;
	p1=p2;
	p2=p;
}
int main()
{
int a,b;
scanf(“%d%d”,&a,&b);
swap(a,b);
printf(“%d%d”,a,b);
return 0;

}

这个程序的作用是交换a,b的值。
注意:此时函数中对形参的各种操作实际上是对实参本身进行操作,而不是将实参变量或对象的值拷贝给形参。如果参数传递的数据较大时,建议使用引用作为函数的形参,这样会提高函数的时间效率,并节省内存空间。

常引用

常引用的声明:在引用的声明前加上const即可。
例如

int a ;
const int &ra=a;
ra=1; //错误
a=1; //正确

作用:提高安全性。

引用作为返回值

要使引用作为返回值,定义函数时需要在函数名前加&。

优点:在内存中不产生被返回值的副本。

规则

  • 不能返回局部变量的引用。
  • 可以返回类成员的引用,但最好是const。

参考:https://www.cnblogs.com/mlgjb/p/8821340.html

posted @ 2020-01-29 20:59  瑞图恩灵  阅读(102)  评论(0编辑  收藏  举报