下面是一个例子,展示如何定义一个二级指针变量,并将其传递给一个函数,通过该函数改变二级指针的值。

#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 函数中,我们打印了修改后的二级指针的值,证明了二级指针的值已经被成功修改。

C语言二级指针:定义、函数参数传递及修改示例

原文地址: https://www.cveoy.top/t/topic/bSvh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录