【C++基础知识】C++中引用的知识点解析

C++中的引用

引用的概念

建立引用的作用通常是为变量起另一个名字,变量的引用通常被认为是变量的别名。

在声明一个引用时,必须用另一个变量来将其初始化。例如:

int i=5;
int j=&i;               //声明j是一个整型变量变量的引用,并用i将其初始化。

此处j可以看作是变量i的一个别名,经过这样的声明后i和j的作用相同,代表同一个变量。对其进行的操作也是等价的,例如改变j的值,i的值也会随之发生变化。

变量和引用的关系

#include<iostream>
using namespace std;
int main()
{
	int i;
	int &j = i;
	i = 30;
	cout << "i=" << i << ' ' << "j=" << j << endl;
	j = 80;
	cout << "i=" << i << ' ' << "j=" << j << endl;
	cout << "变量i的地址是:" << &i << endl;
	cout << "引用j的地址是: " << &j << endl;
	return 0;
}

运行结果如下:

在这里插入图片描述

由此可见,i和j的值同步更新,并且使用同一块内存空间。

说明

1、引用名可以是任何合法化的变量名。除了用作函数的返回值和参数外,在声明引用时,必须立即进行初始化,不能声明完成后再赋值。

2、为引用提供的初始值,可以是一个变量,也可以是一个引用。

3、指针是通过地址间接访问某一个变量,而引用是通过变量别名直接访问某个变量。每次使用引用时,可以不书写解引用运算符“*”,因而使用引用可以简化程序。

4、引用在初始化后不能再重新声明为另一个变量的引用。

5、并不是任何数据的类型的可以引用,例如:

①、不能建立void类型的引用;

②、不能建立引用的数组:

int a[4]="abcd";
int &ra[4]=a;          //非法

③、不能建立引用的引用,不能建立指向引用的指针;

int a=10;
int &&b=a;             //非法
int &*c=a;             //非法

6、可以将引用的地址赋给一个指针,此时指针指向的是原来的变量。

7、引用运算符“&”只在声明引用时起该作用,其他场合时出现的“&”都作为地址操作符。

除此之外引用的功能还有很多,例如引用作为函数参数,作为函数返回值等。

猜你喜欢

转载自blog.csdn.net/weixin_43962381/article/details/111183021