指针的指针作为形参实测

1. VS2019里面创建C++控制台工程

在这里插入图片描述

2. 代码
#include <iostream>


uint8_t buf[3][10] = { {1,2,3},{4,5,6,7,8},{9,0} };
uint8_t len1 = 3,len2 = 5,len3 = 2;

void f1(uint8_t **dstBuf, uint8_t *dstLen)
{
    *dstBuf = buf[0];
    *dstLen = len1;
}

void f2(uint8_t** dstBuf, uint8_t* dstLen)
{
    *dstBuf = buf[1];
    *dstLen = len2;
}

void f3(uint8_t** dstBuf, uint8_t* dstLen)
{
    *dstBuf = buf[2];
    *dstLen = len3;
}

void print_f(uint8_t* buf, uint8_t len)
{
    for (int i = 0;i < len;i++)
    {
        printf("%d ",buf[i]);
    }
    printf("\n");
}

int main()
{
    uint8_t *rxBuf,rxLen;
    std::cout << "Hello World!\n";

    f1(&rxBuf, &rxLen);
    printf("f1:");
    print_f(rxBuf, rxLen);
    f2(&rxBuf, &rxLen);
    printf("f2:");
    print_f(rxBuf, rxLen);
    f3(&rxBuf, &rxLen);
    printf("f3:");
    print_f(rxBuf, rxLen);


    int i = 3;
    int* p;
    p = &i;
    int** q;
    q = &p;
    printf("%d", **q);

}

rxBuf的地址&rxBuf = 0x00dff978 作为形参传入f1()
在这里插入图片描述

这样dstBuf = &rxBuf = 0x00dff978
*dstBuf = 0x0013c000 就是buf[0]的地址
在这里插入图片描述
在这里插入图片描述

rxBuf通过调用函数,在函数中修改指针的值,达到指向不同缓存数组的目的。

3. 效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值