严格来说,当使用术语“引用”时,指的其实是“左值引用”。
引用(reference)为对象起了另外一个名字。
例: int ival = 1024;
int &refVal = ival; // refval指向ival(ival是另一个名字)
int &refVal2; // 报错:引用必须被初始化
定义引用时,程序把引用和它的初始值绑定(bind)在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。
因为无法令引用重新绑定到另外一个对象,因此引用必须被初始化。
注:1)引用并非对象,相反的,它只是为一个已经存在的对象所起的另外一个名字。
2)定义了一个引用之后,对它的所有操作都是在与之绑定的对象上进行的。
3)int &refVal3 = retVal; //正确:refVal3绑定到了那个与refVal绑定的对象上,这里就是绑定到ival上
4)因为引用本身不是对象,所以不能定义引用的引用。
5)允许在一条语句中定义多个引用,其中每个引用标识符都必须以符号&开头。
6)几乎所有的引用的类型都要和与之绑定的对象严格匹配。
7)引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现