【C++】引用与指针
引用只是给已经存在的变量赋一个别名,通过此别名操作变量与通过变量本名操作是一样的效果。
为一个变量声明了引用后该变量就可通过两个名称来操作了。
例如:
int a = 10;
int &b = a;
这样之后通过a与b均可来操作存储10的这块地址空间。
而指针是一种变量类型,可被视为与int、char等相平行的一个概念,只不过其中存储的值代表着一个数据对象(data object)的地址。
引用的特点
引用的特点大致有以下四个:
-
引用定义时必须初始化
int &a;
指针可以不初始化,这就是所谓的”野指针“
int *a;
-
引用不可更改
也即不可:int a = 20; int b = 10; int &c = a; &c = b;
而指针可以被修改。
-
不能为常量值创建引用
-
数组不能定义引用
引用的应用
引用的一个主要应用是将其用于传递参数来提高代码可读性并减少出错。
(据说是因为看不惯指针解引用时所需要的 *。
void swap ( int *x, int *y )
{
int temp = *x;
*x = *y;
*y = temp;
}
用引用传参,则是:
void swap( int &x, int &y )
{
int temp = x;
x = y;
y = temp
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器