例如
int
i
=
1
//定义一个i
int
&q
=
i:
//给i取了一个别名
叫
q
q=
2
//这里给q赋值为2,由于q是i的别名,操作也就相当于操作i,所以此时的i变成了2
引用实际内部实现也是用的指针,但是和指针又有区别,虽占4个字节,但是一般理解不占内存
**p的意思是指针的指针,就是说一个内存中保存的是另一个内存的地址。在C语言中,一个数组名是指向其数组首地址的,例如p[10],*q = p是将p数组的首地址存在P中。你说的书上的定义,是先定义了一个指针的指针P,然后定义了一个指针数组q,这个数组中都保存地址,p=q,是将这个数组的首地址存在p中。