本节书摘来自异步社区《指针的编程艺术(第二版)》一书中的第2章,第2.3节,作者 蔡明志,更多章节内容可以访问云栖社区“异步社区”公众号查看
指针的编程艺术(第二版)
最后,我们介绍3个*的用法作为本章的结尾。请看范例threepointer。
范例threepointer
输出结果
程序中变量的含义,用示意图表示如下。
p3指针变量需经过3次的间接访问才能得到x变量的值,也就是p3需具备三把钥匙才能得到信箱内的信件。*p3的操作过程与范例twopointer的操作过程相同。
一开始p3指向变量p2的地址,所以p3表示第一次间接得到变量p2的内容,里面存储的是变量p1的地址;再加上一个,如p3,表示第二次间接得到变量p1的内容,里面存储的是x变量的地址;再加上一个,如p3,表示第三次间接得到x变量的内容,它里面存储的是100。
这个例子好比一个人拿第一把钥匙打开信箱p2得到的信件,其内容是另一信箱p1的地址。然后,拿第二把钥匙打开信箱p1得到的信件,其内容是另一信箱x的地址。最后,他拿起第三把钥匙,打开信箱x,发现里面放了100元。
具有3个指针的变量,需要有3个*才能得到变量值,否则,得到的都是变量的地址。