2.3.3理解复合类型的声明
指向指针的指针
指针是内存中的对象,像其他对象一样也有自己的地址,因此允许把指针的地址再存放到另一个指针当中
通过的个数可以区别指针的级别,表示指向指针的指针,表示指向指针的指针的指针
int ival=1024;
int *pi=&ival;
int **ppi=π
见p58
指向指针的引用
引用本身不是一个对象,因此不能定义指向引用的指针。但指针是对象,所以存在对指针的引用
int i=42;
int *p;//p是一个int型指针
int *&r=p;
指向指针的引用
引用本身不是一个对象,因此不能定义指向引用的指针。但指针是对象,所以存在对指针的引用
int i=42;
int *p;
int *&r=p;//r是一个对指针的引用
r=&i;//r引用了一个指针,因此给r赋值&i就是令p指向i
*r=0//解引用r得到i,也就是p指向的对象,将i的值改为0
从右往左阅读r的定义。离变量名最近的符号(&r)对变量的类型最直接的影响,因此r是一个引用。声明符的其余部分用以确定r引用。声明符的其余部分用以确定r引用的类型是什么,此例子中符号*说明r引用的是一个指针。
2.3.3理解复合类型的声明
int i=1024,*p=&i,&r=i;
//i是一个int型的数,p是一个int型指针,r是一个int型引用