C++中引用的基本用法

马谦马谦马谦
马谦马谦马谦
马谦马谦马谦
606
文章
12
评论
2017年12月4日22:46:29 评论

一、基本用法

创建一个对象的引用只需把声明符写成&val的形式即可:

创建引用时,编译器并不是把拷贝一个值赋给引用,而是把引用和初始的对象绑定在一起,相当于只是给对象起了一个别名。可以通过引用来操作初始化对象,并且通过引用来操作对象时,相当于直接对对象进行了操作。

以引用作为函数的形参时,在函数内部改变形参的值,函数外部变量的值也会改变:

可以用引用给引用赋值,实际上就是把引用绑定的对象作为初始值:

二、注意事项

1 引用必须初始化

因为引用只是和对象绑定在一起了,而不是拷贝值,一旦初始化完成,引用将永远和初始对象绑定在一起。所以引用在使用时必须初始化,并且引用不能重新赋值。

2 不能使用引用的引用

引用本身不是一个对象,所以不能定义引用的引用

3 引用对象的类型必须匹配

引用对象的数据类型必须和初始化对象严格匹配。

4 不能使用字面量初始化引用类型

引用类型的初始值必须是一个对象,不能为一个字面量。

历史上的今天
十二月
4
马谦马谦马谦
  • 本文由 发表于 2017年12月4日22:46:29
  • 转载请务必保留本文链接:https://www.dyxmq.cn/program/code/c-cpp/cpp-reference-1.html
给socket分配随机端口 C/C++

给socket分配随机端口

客户端的socket不需要手动执行bind绑定地址,但这不意味着客户端socket真的不需要绑定端口,实际上是内核它帮我们做了这个操作,在执行connect时,内核发现没有绑定端口,就会自动选择一个合...
vector中emplace_back方法的用途 C/C++

vector中emplace_back方法的用途

在写代码的过程中,CLion提醒我把push_back方法替换成emplace_back方法: 代码中我的想法是使用vector创建一个二维数组,并提前分配好空间,避免后序频繁扩容增加时间复杂度。 e...
宏定义踩坑实战:嵌套调用宏定义 C/C++

宏定义踩坑实战:嵌套调用宏定义

问题背景:在刷题的过程中,要使用min函数,但是线上OJ并没有这个函数。因为一时也想不起它到底属于哪个头文件,所以为了偷懒,顺手就写下了以下宏定义: #define min(x, y) (x) <...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: