【C++】引用,即变量的别名,一般用于函数参数或返回值 + &既可以作为取地址符,也可以用于定义引用

C++中的引用是已有变量的别名,它们共享相同内存地址,必须在创建时初始化且不可为空。引用常用于函数参数以直接修改原变量,提高效率,也可作为函数返回值,但不能返回局部变量的引用。范围for循环允许遍历容器元素,若使用引用,可在循环中修改元素。
摘要由CSDN通过智能技术生成

1、C++中的引用介绍

  • 在C++中,引用是指某个已存在变量的别名,也就是说二者共享相同的内存地址。
  • 由于它是个别名,因此一定不存在空引用,也就是说必须在创建引用时,就进行初始化,而且只能指向初始化的那个对象。例如:
int i = 17;
int& j = i; // j就是一个初始化为i的整型引用
  • 引用常被用于作为函数参数或者函数的返回值,也可以作为范围for循环中变量的引用,即可以在循环中修改容器内的值,例如:
vector<int> a = {0, 1, 2}
int b[] = {3, 4, 5}
for (auto i: a/b) //没有使用引用,不能修改a或者b的值
for (auto &i: a/b) //使用了引用,可以修改a或者b的值

范围for循环是C++11引入的,可以适用于任何顺序容器的元素的循环,例如vector,string等,注意:
1)范围for循环只能遍历/修改容器内的元素
2)不能在遍历当前元素时,知道前后元素的值

2、引用作为函数参数

  • 有两种作用:

1)可以在函数内部对该参数进行修改:如果我们将形参定义成引用,那么此时的赋值后形参只是实参的一个别名,因此在函数内部的修改也会作用于变量本身
2)提高函数调用和运行效率:形参是实参的引用,不用经过值的传递机制,已经有了实参值的信息。所以没有了传值和生成副本的时间和空间消耗。当程序对效率要求比较高时,这是非常必要的,

3、引用作为函数返回值

  • 以引用返回函数值,定义函数时需要在函数名前加 &
  • 用引用返回一个函数值的最大好处是:在内存中不产生被返回值的副本
  • 需要注意,不能返回局部变量的引用。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。

4、&符号常用于取地址符以及引用

  • 取地址符:& 用于获取变量的内存地址。例如,int a = 10; 中的 &a 将返回变量 a 的地址。
int a = 10;
int* ptr = &a; // 获取变量 a 的地址并将其保存在指针 ptr 中
  • & 可以用于定义引用类型。引用是一个已存在对象的别名,它与原始对象共享相同的内存地址。
int a = 10;
int& ref = a; // 定义一个整数引用 ref,它是变量 a 的别名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值