指针的用处我知道
比如 int p[3];
int* x=&p
x作为p的索引
比如 int p[3];
int* x=&p
x作为p的索引
那么指针的指针呢,既然它出现在c中肯定有用,可是我实在不知道有什么用,难道对指针进行索引,索引的索引?
答:
我给楼主一个最直接的理由:那就是如果你希望在一个函数的参数中改变一个指针的值,你就只能传这个指针的指针给这个函数。
比如有int *p;
而你想在函数f中对其增量,就只好:
void f(int **pp)
{
*pp++;
}
知乎回答:
1、最简单的一个例子,当你想动态分配内存给二位数组(矩阵,表,等等)的时候,你就可以使用**了。比如想创建一个n x m的int矩阵,行数n和列数m由用户输入,你就可以使用int**来存储这个二维数组,然后再动态分配内存给这个数组。
2、比较明显的一个作用,就是减少函数传参,不然还需要传一个*index,来指示函数调用后的内存偏移量,传**进去,函数调用后,你的指针就自动指向偏移后的地址了。
本文解释了在C语言中使用指针的指针的原因及应用场景,包括如何通过指针的指针改变函数外部的指针值,以及如何利用指针的指针动态分配二维数组的内存。

被折叠的 条评论
为什么被折叠?



