c语言二级指针为什么要取一级指针的地址

c语言二级指针为什么要取一级指针的地址,这里的p不就是储存这a的地址吗?谢谢

img

俄罗斯套娃,在计算机里变量a占有地址&a,当你把指针指向a时,指针p也占有地址&p,这时又可以将另一个二级指针指向一级指针的地址,那么二级指针又占有地址以此类推

二级指针存储的是一级指针的地址,一级指针存储的是变量a的地址。
按照这个规律,一级指针要赋值&a,那么二级指针自然要赋值&p啦,这是一个道理啊

套娃呗。
*p指向a的内存地址,但同时*p自己也是变量,也会占用内存空间,也有内存地址。那么**p指向*p内存空间地址也是很自然的。

你把钥匙A放进B保险箱,B保险箱的钥匙放到C保险箱,现在你要找B的钥匙,是不是要先找到C保险箱的位置才行

你也知道p存储的是a的地址
那把a的地址赋值给二级指针吗?
不是应该取p自己的地址吗