📜  C |高级指针|问题7(1)

📅  最后修改于: 2023-12-03 15:29:44.424000             🧑  作者: Mango

C | 高级指针 | 问题7

在 C 语言中,指针是非常重要的数据类型,而高级指针则是指针的一个更高级的使用方式。在本问题中,我们将介绍高级指针的一种用法:指向指针的指针。

指向指针的指针

指向指针的指针是一种高级指针的使用方式,它可以使我们更方便地对指针进行操作。指向指针的指针是一个指向指针的指针变量。它可以存储指针的地址,使得我们可以通过该指针指向的位置修改指针的值。

让我们来看一个例子:

#include <stdio.h>

int main() {
   int a = 10;
   int *p = &a;
   int **pp = &p;
   
   printf("a = %d\n", a);   // 输出 a 的值
   printf("*p = %d\n", *p);   // 输出 p 指向的值
   printf("**pp = %d\n", **pp);   // 输出 pp 指向的指针指向的值
   
   return 0;
}

在这个例子中,我们定义了一个整型变量 a,和一个指向 a 的指针 p。我们还定义了一个指向指针 p 的指针 pp,并将其指向 p 的地址。这时,我们就可以通过 pp 来修改 p 的值了,如下所示:

*pp = NULL;

这行代码会将 p 的值设置为 NULL。注意,我们使用的是 *pp 这个指针,它指向的是 p 这个指针的位置,而不是 a 这个变量的位置。

总结

指向指针的指针是指针的高级使用方式之一。它可以使我们更方便地对指针进行操作。通过指向指针的指针,我们可以修改指针指向的地址,进而修改内存中的值。