这一节来研究下指向指针的指针的用法:
指向指针的指针(即指针的指针)的声明中有2个星号,如下所示:
char** cpp;
如果有3个星号,就是指针的指针的指针,4个星号就是指针的指针的指针的指针,依次类推。
对指针的指针初始化需要用到指针的地址:
char c = 'A';
char* cp = &c;
char** cpp = &cp;
通过指针的指针,不仅可以访问到他指向的指针,还可以访问到他指向的指针所指向的数据。例如:
char* cp1 = *cpp;
char c1 = **cpp;
1.利用指针的指针来允许被调用函数修改局部指针变量。
运行结果:
2.利用函数的指针来处理指针数组
运行结果如下:
注意:
数组中的最后一个元素被初始化为0,while循环以此来判断是否达到数组末尾。具有零值的指针常常被用作指针数组的终止符。程序员称零值指针为空(null)指针。采用空指针作为终止符,在数组中删除元素时,不必改变遍历数组的代码,因为此时数组仍然以空指针作为结束。