03 C++之引用
2020.8.2
1 引用
(1) 将新标识符和旧标识符绑定的对象绑定在一起,一旦绑定不可以更改,因此,也成为旧标志符别名;
(2) 在定义时使用&符号将标识符和对象绑定,新标志符和绑定对象需类型一致;
范例:
int a = 10;
int &new_a = a;
std::cout << "new_a:" << new_a;
result:
[root@promote test]# ./quote
new_a:10
(3) 引用和指针辨析
指针是创建一个新对象指向旧对象,因而,指针可以更改指向,不受旧对象限制;
引用是创建一个新的标识符,并绑定在旧对象上,因而,引用只能访问和修改旧对象;
每一个变量创建时都会绑定到一个新对象上,并且,不能更改绑定,只能访问和修改绑定对象;
范例:
#include <iostream>
2
3 using namespace std;
4
5 int main()
6 {
7 int a = 10;
8 int *p = &a;
9 int *&tmp = p;
10 int *q = tmp;
11
12 std::cout << "&p : " << &p << std::endl;
13 std::cout << "&tmp : " << &tmp << std::endl;
14 std::cout << "*q = " << *q << std::endl;
15 return 0;
16 }
result:
[root@promote test]# ./quote
&p : 0x7ffdf93c8680
&tmp : 0x7ffdf93c8680
*q = 10
标识符p和tmp指向的内存空间相同,因而,可以证明p和tmp绑定的对象的相同;
注:
本文观点不当之处,请各位同行指正,谢谢大家