首先我们知道任何变量都有左值和右值,分别对应变量的内存区域和内存区域中的值
引用其实就是变量的别名,其实是一个东西有两个名吧
定义方式 类型 &引用名 = 变量名 而且必须定义的时候就初始化,不然是错误的
看个例子吧
1 #include<bits/stdc++.h>
2 using namespace std;
3
4 int main()
5 {
6 int i = 9;
7 int *p = &i;
8 int &ir = i;
9 cout << &i << " " << &ir << " " << p << endl;
10
11 cout << i << " " << *p << " " << ir << endl;
12 cout << &i << " " << &ir << " " << p << endl;
13
14 *p = 3;
15 cout << i << " " << *p << " " << ir << endl;
16 cout << &i << " " << &ir << " " << p << endl;
17
18 ir = 8;
19 cout << i << " " << *p << " " << ir << endl;
20 cout << &i << " " << &ir << " " << p << endl;
21
22 i = 99;
23 cout << i << " " << *p << " " << ir << endl;
24 cout << &i << " " << &ir << " " << p << endl;
25
26 int *p2 = &ir;
27 cout << i << " " << *p << " " << ir << " " << *p2 << endl;
28
29 *p2 = 666;
30 cout << &i << " " << &ir << " " << p << " " << p2 << endl;
31 cout << i << " " << *p << " " << ir << " " << *p2 << endl;
32 cout << &i << " " << &ir << " " << p << " " << p2 << endl;
33 return 0;
34 }
