C语言二级指针:定义、函数参数传递及修改示例
下面是一个例子,展示如何定义一个二级指针变量,并将其传递给一个函数,通过该函数改变二级指针的值。
#include <stdio.h>
#include <stdlib.h>
// 函数参数为二级指针,通过修改二级指针的值改变原始的二级指针
void changeDoublePointer(int** pp) {
int* p = (int*)malloc(sizeof(int));
*p = 10;
*pp = p;
}
int main() {
int* p = NULL;
int** pp = &p;
// 输出原始的二级指针的值
printf("Before change: %p\n", *pp);
// 通过函数改变二级指针的值
changeDoublePointer(pp);
// 输出修改后的二级指针的值
printf("After change: %p\n", *pp);
return 0;
}
输出结果:
Before change: (nil)
After change: 0x7fda3d402b60
在上述示例中,首先定义了一个二级指针变量 pp,并将其初始化为指向 p 的指针的指针(即 &p)。然后,在 changeDoublePointer 函数中,我们通过动态分配内存创建了一个新的整数变量,并将其值设置为 10。接下来,我们将该新创建的变量的地址赋值给二级指针所指向的地址,即 *pp = p。因此,通过执行这个函数,我们改变了原始的二级指针的值,使其指向新创建的整数变量。最后,在 main 函数中,我们打印了修改后的二级指针的值,证明了二级指针的值已经被成功修改。
原文地址: https://www.cveoy.top/t/topic/bSvh 著作权归作者所有。请勿转载和采集!