// 声明一个变量 a 并赋值为18 int a = 18; // 声明一个“绑定到变量 a ”的引用变量 int& ref = a; // 声明一个指针变量并将指针指向变量 a 的地址 int* poi = &a; // 操作 ref 和 poi 变量 ref = 22; // a:22 *poi = 30; // a:30
| 变量名 | 地址 | 变量值 |
| a | 0x60ec06(假设) | 18 |
程序通过变量名 a 可以访问内存中的 0x60ec06 号地址,得到值 18。
引用变量 ref 声明时就与变量 a 绑定,操作引用 ref 即操作 a 变量的值;另外无法通过引用 ref 操作 a 变量的地址。
指针变量 poi 声明后并指向变量 a 的地址,操作指针 poi 即操作 a 变量的地址;也能通过 “*” 运算符操作变量 a 的值,指针变量也可以修改指向去操作新的地址空间。
总之指针变量更灵活,引用变量不易出错,可以视 “引用” 为 const 的 “指针” 。



