
上QQ阅读APP看书,第一时间看更新
9.6.2 指向指针的指针
指针是一种比较特殊的变量,它可以指向一个普通的变量,还有一种变量,这种变量能够指向一个指针变量,简称指向指针的指针,听起来有点绕。
例如,定义一个指向“字符串指针变量”的指针变量,应该这样写:

定义一个指向“整型指针变量”的指针变量,应该这样写:

如何解释上面的这种定义呢?已知“*”指针运算符,是从右到左结合的,所以相当于*(*p)。
括号里的*p是指针变量的定义形式。又在前面加了一个“*”,表示指针变量p是指向一个指针变量的,而*p是p所指向的另一个指针变量。
有些读者可能好奇,上面定义两个“*”,那定义“***”可以吗?定义“****”可以吗?是的,可以,语法上没问题,但理解上显然就不好理解了,因为“**”都已经挺不好理解了。
接着上一个小节中的范例继续书写代码:

继续书写代码:

指向指针变量的指针变量用的场合不太多,而且也属于比较深入的概念,可以通过多演示来掌握,别被绕糊涂就行了。这里只做简单介绍,如果日后有实际需要,可以继续深入探索。