指针vs引用
指针:
- 指向值,但本身值为地址。
- 可以有null pointer,指向特殊地址0
- 初始化后可以被改变
引用:
- 相当于const指针,
int& r = n
等同于int *const r = &n
- 因为是
int *const
所以初始化之后,r本身的值不能改变,也就是不能改变它指向的地址了
关于int *const r
:
- 表示一个常量指针,指向一个整数。
- 指针是常量:一旦初始化,指针本身的值(即它指向的地址)不能改变。
- 指向的数据是可变的:可以通过这个指针修改它指向的整数的值。
1 | int value1 = 10; |
相应的有const int *
:
- 表示一个指向常量整数的指针。
- 指针是可变的:指针本身的值(即它指向的地址)可以改变。
- 指向的数据是常量:不能通过这个指针修改它指向的整数的值。
1 | int value1 = 10; |
所以,引用的作用就是一个常量指针,它经常被用于函数中传递数据来节省单独copy一次的空间,或者当函数执行的过程中,参数需要永久被改变,就可以通过引用来传递参数(因为它是通过地址来获取值,所以更改引用的值,就是在地址上更改值,而不是更改复制的值)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AiXueK's Site!