引用:reference ,为对象起个名字
int ival =1024;
int &refVal =ival;// refVal指向ival,refVal是ival的另一个名字
特点:
引用不是对象
引用定义必须初始化,不同于拷贝(把1024拷贝给新对象ival中),引用是把初始值和引用名绑定起来。
初始化完成后,引用必须一直和初始值对象绑定在起义,不可以绑定其他
指针: int* ip1,*ip2; // ip1和ip2是指向int类型的指针
double dval;
double*pd = &dval;// 指针的值是对象的地址
double *pd2 = pd;// 指针拷贝
特点:
指针本身就是对象,允许对指针赋值,拷贝
指针的生命周期内可以指向几个不同的对象
指针定义时不强制赋初值
指针可以遍历数组: *p++;
指针需要解引用*才可以访问数值;引用则可以直接使用
指针可以放入数组中,引用则不可以放入数组
const int &x1 = int(20); //引用可以绑定到临时对象
int*y = &int(202); //指针不可以绑定到临时对象