1.引用与指针:
指针与引用都能提供对其他对象的间接访问。具体细节上,两者有很大不同。最重要的是引用本身并非是一个对象,只是一个存在的对象所起的另外一个名字。一旦定义了引用,就无法令其再绑定到另外的对象,之后每次的引用都是访问它最初绑定的对象。
引用必须&开天,引用类型的初始值必须是一个对象。
指针本身是一个对象,允许赋值与拷贝,如果指针指向了一个对象,则必须使用解地址符*。给指针赋值相当于给指针存放一个新的地址,从而指向一个新的对象。
<pre name="code" class="cpp"><span style="font-size:14px;">//引用
int i=1;
int &j=i;//(j指向了i,j是i的另外一个名字)(必须初始化)
//指针
int i;
int *j=&i;
int *k=j;//正确,初始值是指向int型的指针
//指向指针的指针
int i=1024;
int *j=&i;
int **k=&j;//k指向一个int型的指针的指针。**表示指针的指针
//指向指针的引用
int i=42;
int *p;
int *&r=p;//r是对指针p的引用
r=&i;//r引用了一个指针,给r赋值&i,就相当于令p指向i&#