C++中的引用——引用详解

参考视频:【考研】C++:6分钟带你搞懂C++中的引用_哔哩哔哩_bilibili

目录

1.引用的概念

2.引用的初始化

3.定义引用注意事项

4.引用vs指针(区别)

5.引用的应用

函数返回引用


1.引用的概念

引用是 C++ 中的一种类型,它为一个已经存在的变量创建了一个别名,它是某个已存在变量的另一个名字。对引用的操作与对变量名直接操作完全一样。

2.引用的初始化

类型标识符    &引用名 = 目标变量名:

“&”并不是取地址操作符, 而是起标识作用,标识所定义的标识符是一个引用。

引用声明完成以后相当于目标变量有两个名称

3.定义引用注意事项

(1)引用在定义时必须初始化,不能声明后再赋值。例如,int& ref; 是错误的,必须写成 int& ref = x;

(2)引用在初始化时只能绑定左值,不能绑定常量。例如,int& ref = 5; 是错误的

(3)引用一旦被初始化为某个变量,就不能再指向其他变量

(4)数组的引用

数组的引用是指一个引用变量指向整个数组,而不是数组中的单个元素。

数组本身可以被引用,但不能像普通变量那样直接创建数组的引用。例如,可以声明一个引用指向整个数组,需要指定数组的类型和大小,语法上需要使用数组的指针:

int arr[5] = {1, 2, 3, 4, 5};
int (&arrRef)[5] = arr; // arrRef 是数组 arr 的引用

int (&arrRef)[5] 表示 arrRef 是一个引用,指向一个包含 5 个整数的数组

不能单独引用数组元素:不能像 int& element = arr; 这样直接引用整个数组

因为数组名代表的是指向数组首元素的指针,而不是一个左值。

4.引用vs指针(区别)

三个主要的不同:

1.不存在空引用。引用在初始化时必须指向一个有效的内存地址;指针可以被赋值为 null表示不指向任何有效的内存地址。

2.引用被初始化为一个对象,就不能被指向到另一个对象。引用永久绑定到最初的对象

指针可以在任何时候指向到另一个对象。

3.引用必须在创建时被初始化;指针可以在任何时何被被初始化或重新赋值

5.引用的应用

C++增加引用的类型,主要的应用就是把它作为函数的参数,以扩充函数传递数据的功能,引用中作为函数参数时是区别于值传递与址传递的引用传递. 还有函数返回引用

函数返回引用

以一段代码为例

#include <iostream>
using namespace std;

// 函数:返回两个整数引用中较大值的引用
int &Max(int& i, int& j)
{
    // 判断并返回较大值的引用
    return i > j ? i : j; 
}

int main()
{
    int x, y; 
    cout << "请输入两个整数:"; 
    cin >> x >> y; 

    // 直接将较大值的引用赋值为 10
    Max(x, y) = 10; // 如果 x 大于 y,则 x 被赋值为 10;否则 y 被赋值为 10

    // 输出当前较大值(现在已经被设置为 10)
    cout << "较大的值是:" << Max(x, y) << endl; 

    return 0; 
}

Max(x, y) = 10; 的意思是将返回的引用赋值为 10,返回的是对原始变量的引用,通过这个赋值操作直接修改了 xy

函数 Max 返回的是 ij 的引用,因此可以直接赋值来修改原始变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值