二级指针的概念:
任何值都有地址 ,一级指针的值虽然是地址,但这个地址(指指针的值)做为一个值亦需要空间来存,
是空间就具有地址 ,这就是存放地址这一值的空间 所具有的地址,二级指针就是为了获取这个地址
一级指针所关联的是其值(一个地址)名下空间里的数据,这个数据可以是任意类型并做任意用途,但二级指针所关联的数据只有一个类型一个用途,就是地址
指针就是两个用途 : 提供目标的读取或改写, 那么二级指针就是为了提供对于内存地址的读取或改写
指针的表现形式是地址,核心是 指向关系指针, 运算符“*”的作用 是按照指向关系访问所指向的对象:
如果存在A指向B的指向关系,则A是B的地址,“*A”表示通过这个指向关系间接访问B
如果B的值也是一个指针,它指向C,则B是C的地址,“*B”表示间接访问C(C是普通变量)
则B(即C的地址)是普通的指针,称为一级指针,用于存放一级指针的变量称为一级指针变量。
A(即B的地址)是指向指针的指针,称为二级指针,用于存放二级指针的变量称为二级指针变量
二级指针的分类
指向指针变量的指针 :
在如上的A指向B、B指向C的指向关系中,如果A、B、C都是变量,即C是普通变量,B是一级指针变量,其中存放着C的地址,A是二级指针变量,其中存放着B的地址,则这3个变量分别在内存中占据各自的存储单元,它们之间的相互关系下图所示:
指向数组的指针