int *a;
int *&p=a;
int b=10;
p=&b;
/*
* int &p=a;//p是a的别名,p和a是同一个整型变量,
* //占用同一块内存空间
* int *a;
* int *&p=a;//把int* 看成一个类型(整型指针),
* //p是a的别名,就是定义一个整型指针
* //a的引用,即a的别名是p
* int b=10;
* p=&b;//指针a也是b的地址,其指向的内容是10
*/
int i=5;
int *a=&i;
int **p=&a;
cout<<**p<<endl;
/*
* int **p=&a;//p是指向指针的指针,p指向指针
* //变量a,a指向i
* cout<<**p<<endl;//表示输出i的值5
*/
* (p=&n)=5;//取n的地址赋给p,最后就是n=5
int **p;
*(*(p+1)+2)=5;
/*
* 对p代表的地址右移一个单位,取值(取的值仍是
* 指针),对该值所代表的地址右移两个单位,再对新
* 地址取值
* 指针移动若干单位,所增加的地址值取决于指针的类
* 型,通用公式:
* T *p;p+N=(p的值)+N*(sizeof(T))
*/