二级指针(double pointer)是指一个指针变量存储的是另一个指针变量的地址,也就是指向指针的指针。在C语言中,使用二级指针可以实现对指针的简介引用,或者用来修改指针本身所指向的内存地址。
下面是一个简单的示例来说明二级指针的用法:
#include <stdio.h>
int main()
{
int num = 10;
int *ptr1; // 指针变量
int **ptr2; // 二级指针变量
ptr1 = # // 将指针 ptr1 指向 num 的地址
ptr2 = &ptr1; // 将二级指针 ptr2 指向指针 ptr1 的地址
// 通过 ptr1 和 ptr2 访问 num 的值
printf("Value of num using ptr1: %d\n", *ptr1);
printf("Value of num using ptr2: %d\n", **ptr2);
return 0;
}
在上面的示例中,我们首先声明了一个整型变量 num,然后声明了一个指针变量 ptr1
,将其指向 num
的地址。接着,我们声明了一个二级指针变量 ptr2
,将其指向指针变量 ptr1
的地址。
通过 *ptr1
我们可以访问 num
的值,而通过 **ptr2
同样可以访问到 num
的值。这是因为 ptr2
存储了 ptr1
的地址,ptr1
存储了 num
的地址,因此 **ptr2
会先解引用 ptr2
得到 ptr1
,然后再解引用 ptr1
得到 num
的值。
二级指针在一些场景中特别有用,比如动态内存分配、多级指针数组等情况下。通过二级指针,我们可以实现对指针本身以及指针所指向的内存地址进行更加灵活的控制和操作。
更多C语言相关练习请访问:test_c: C语言练习,包括常见语法练习以及小项目练习。 (gitee.com)