关于C++中的引用类型(特点以及与指针的区别)

本文介绍了C++中的引用类型,强调其作为变量别名的特性,必须在定义时初始化且不可改变引用对象。通过对比指针,说明引用在参数传递时直接操作原对象,避免了值复制。示例代码展示了引用如何用于函数参数,以实现变量值的真正交换,从而解释了为何在不使用引用时,函数内的变量交换不会影响主函数中的变量。引用提供了一种更安全、便捷的指针使用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于C++中的引用类型(特点以及与指针的区别)

今天上数据结构与算法课时,接触到了没有接触过的C++中的新概念——引用类型。也就是在函数形参部分前面加上&标识符,使得形参中的地址得以copy下来,接下来便可以会更加方便地使用。

引用类型

引用(&)是标识符的别名
定义一个引用时,必须同时对它进行初始化,使它指向一个已存在的对象
例如:
int i,j;
int &ri = i; //定义int引用ri,并初始化为变量i的引用
j = 10
ri = j; //相当于i=j
一旦一个引用被初始化后,就不能改为指向其他对象
引用可以作为形参,可以实现参数的双向传递

下面展示一下例子:
#include <stdio.h>
#include
#include
#include
#include <stdio.h>
using namespace std;
int gg(int a, int b)
{
int t = a;
a = b;
b = t;
}
int main()
{
int x, y;
cin >> x >> y >> endl;
gg(x,y);
cout << x << y << endl;
return 0;
}

像这个代码,运行之后x,y地值依旧没有改变。为什么?
子函数里的变量无论怎么操作,作用域只有子函数内部,不会影响主函数。
程序在调用子函数时会为x y重新开辟内存,并将实参的值复制到x y中去,然后在gg函数中,a,b确实发生交换了,但这跟主函数中的x,y毫无关系呀,x,y并未发生改变呀。子函数调用结束后形参所占内存自动释放。
但是做一点修改就不一样了:

#include <stdio.h>
#include
#include
#include
using namespace std;
int gg(int &a, int &b)
{
int t = a;
a = b;
b = t;
}
int main()
{
int x, y;
cin >> x >> y >> endl;
gg(x,y);
cout << x << y << endl;
return 0;
}

引用型变量其实是将主函数中变量的地址传递给了子函数,这样子函数直接去操作主函数中的变量,并不会再为形参开辟内存,这与指针是一样的。

总结

1.引用类型是C++里的类型。
2.引用类型只能赋值一次,不能重新赋值。(是指地址只能引用一次,但是地址里的值可以改变)
3.引用只是变量的一个别名。
4.可以理解为编译器维护的一个指针,但是不会占用内存。
5.使用引用可以像指针一样去访问、修改对象的内容,但是更方便,同时也更安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值