在C语言中,二级指针是指向指针的指针。要使用二级指针,首先需要创建一个指针变量,然后将其指向另一个指针变量的地址。这里有一个简单的例子来说明如何使用二级指针:
#include <stdio.h>
int main() {
int a = 10;
int *p = &a; // 创建一个指向整数的指针p,并让它指向变量a的地址
int **pp = &p; // 创建一个指向指针的指针pp,并让它指向指针p的地址
printf("Value of a: %d\n", a);
printf("Value of p: %p\n", (void *)p);
printf("Value of pp: %p\n", (void *)pp);
// 通过二级指针pp访问指针p所指向的值
printf("Value of *p through pp: %d\n", **pp);
// 修改指针p所指向的值
*p = 20;
printf("Value of a after modifying *p through pp: %d\n", a);
// 修改指针p所指向的地址
p = (int *)0x12345678;
printf("Value of p after modifying its address: %p\n", (void *)p);
// 通过二级指针pp访问修改后的指针p所指向的值
printf("Value of *p through pp after modifying p's address: %d\n", **pp);
return 0;
}
在这个例子中,我们首先创建了一个整数变量a
,然后创建了一个指向整数的指针p
,并将其指向变量a
的地址。接着,我们创建了一个指向指针的指针pp
,并将其指向指针p
的地址。
我们可以通过二级指针pp
访问指针p
所指向的值,例如**pp
。我们还可以通过二级指针pp
修改指针p
所指向的值,例如*p = 20
。此外,我们还可以通过二级指针pp
修改指针p
所指向的地址,例如p = (int *)0x12345678
。