解释如下:指针的本质其实就是地址,我们常说的指针哪,一般都是指的指针变量,就是存放地址的变量。二级指针,就是指向指针的指针,举例说明:char ch='A'
; //定义了一个char型变量ch,并初始化char *p; //定义了一个char型指针变量pchar **pp; //定义了一个char型二级指针变量ppp=&ch; //把变量ch的地址赋值给p,那么p就指向了变量ch了。pp=&p; //把指针变量p的地址赋值给pp,那么pp就指向了指针p了。因为指针变量,它有自己的内存空间,所有的指针类型的变量都是4个字节的大小,即存放的是一个32位的地址值。二级指针和二级地址的本质含义是一样的,指针一般是认为是指针变量的,其值是可变的;而地址,我们通常认为它是一个常量值,是不变的。平常地址与指针,一样的理解,本质是一样的,都是地址。我们说地址,比如说我定义了一个变量a,那么这个变量a的地址&a,在编译阶段它的值就已经确定了,是不变的了。
而对于指针变量p,它可以存放变量a的地址&a,也可以存放变量b的地址&b,它的值是可变的,所以我们就把这样的变量就就做指针。 总而言之,指针和地址,本质是一样的,只是两种不同的叫法而已。