所谓指针定义,可以认为一个指针位置有2个结构,第一个结构就是指针所指向的地址,第二个结构就是地址里的数据。
对赋值操作来说,指针变量在左边和右边不一样,在左边是取地址(也可以理解为容器),在右边的是取地址处的值(也就是容器里的东西)。
// 结合图示,这里的*ppp你觉得是修改哪个变量的值呢?
// 答案:修改的是pp地址处的值,也就是说 *pp 和 &p 要更改的地址是同一处(地址关系:*pp === &p === 0x02),也就是修改 0x02 地址处的值。
*pp = 54321;
// 结合图示,如果我们要取**pp的值。
// 这里实际就是把&p地址处的值给取出来了,因为他在右边的位置上。
int cpVal = **pp
// 口诀就是左值是取地址(容器),右值是取地址处的值。
// 其他的*p也就好理解了,这里就不解释了
标签:容器,图示,pp,0x02,C语言,地址,指针
From: https://www.cnblogs.com/XingXiaoMeng/p/17640110.html