重生之我是一名程序员 30 ——二级指针

哈喽啊各位,好久不见!今天呢我们直接进入正题,所以今天要给大家分享的知识是——二级指针。

1.二级指针是指指针本身也是一个指针,即指向指针的指针。在C语言中,二级指针通常用于传递指针的地址,方便在函数内部修改指针的值。例如:

在上述例子中,`ptr1`是一个指向`x`的指针,而`ptr2`是一个指向`ptr1`的指针,因此`ptr2`是一个二级指针。可以通过`*ptr2`获取`ptr1`的值,再通过`**ptr2`获取`x`的值。

2.那么,相对于一级指针二级指针有什么作用呢?下面我给大家讲讲,二级指针的主要用途是可以在函数调用中传递指针的指针,以便在函数中修改指针的值或者修改指针指向的内存区域的值。

例如,一个函数可以通过二级指针修改一个动态分配的内存块的值。代码如下:

#include <stdlib.h>
#include <stdio.h>

void modify(int** pptr)
{
    // 修改指针指向的内存块的值
    **pptr = 100;
}

int main()
{
    // 动态分配一个整型内存块
    int* ptr = (int*)malloc(sizeof(int));
    *ptr = 10;

    // 传递指针的指针
    modify(&ptr);

    printf("%d\n", *ptr);  // 输出100

    // 释放内存块
    free(ptr);
    
    return 0;
}

在上述示例中,modify()函数接收一个二级指针pptr,它可以通过**pptr修改指针指向的内存块的值。在main()函数中,先动态分配一个整型内存块,并将指针ptr指向这个内存块。然后将ptr的地址通过modify()函数的参数传递进去。在modify()函数中,通过二级指针修改了指针指向的内存块的值为100。最后在main()函数中,输出ptr指向的内存块的值,结果为100。

好啦,那么今天的分享到此结束,谢谢各位!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值