1. 引用:相当于为对象起了另一个名字
int &refval = ival;
此时refval就相当于ival的别名,绑定在了一起。所以修改refval就是修改了ival。
同理: int a = ival; 和 int a = refval; 效果一样。
2. 指针:指针也是对对象的简介访问,但相比于引用,指针本身就是一个对象。
int *p = &a;
可以理解为p中存放了a的地址,也可以理解为p是指向变量a的指针。
对*p的一切操作(赋值,取值)如同和对a直接操作一样。 (*操作符也叫解引用符)
*和&:
在声明中紧跟类型名出现时,是声明的一部分,指示是一个指针 引用:
int &i = a; int *p ;
在表达式中出现,是一个取地址符/解引用符。
p = &i; *p = i;
*可以迭代多层,**代表为指针的指针。