当前位置: 首页 > news >正文

指针的指针作为形参实测

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. 效果

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【组合数学】【Python】【小练习】一、斯特灵近似式求阶乘
  • C++ 基础入门篇
  • 一篇模块化RAG之最新全面系统性综述
  • 【必看!】阿里云推出QWen-7B和QWen-7b-Chat,开放免费商用!
  • MySQL--数据库备份
  • Snooping Coherence Protocols
  • 【langchain学习】使用JsonOutputParser让大模型生成结构化JSON数据
  • PMP报考条件真的需要做项目达到3年时间吗?
  • Gemini Pro 加持,谷歌 AI 笔记 Notebook LM 重磅升级!
  • 操作系统信号处理探讨
  • 大型分布式B2B2C多用户商城7.0企业版源码分享【java语言、方便二次开发】
  • 一些数学基础概念
  • 去除重复项后再求交集
  • “探索文心一言:百度AI写作助手使用指南”。
  • 7 WIFI
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Angular6错误 Service: No provider for Renderer2
  • github从入门到放弃(1)
  • HTML-表单
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Laravel Mix运行时关于es2015报错解决方案
  • leetcode讲解--894. All Possible Full Binary Trees
  • PHP CLI应用的调试原理
  • Python学习之路16-使用API
  • React中的“虫洞”——Context
  • Redis的resp协议
  • RxJS: 简单入门
  • vue脚手架vue-cli
  • 编写高质量JavaScript代码之并发
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 问题之ssh中Host key verification failed的解决
  • 我是如何设计 Upload 上传组件的
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • # 飞书APP集成平台-数字化落地
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #{}和${}的区别?
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (12)目标检测_SSD基于pytorch搭建代码
  • (145)光线追踪距离场柔和阴影
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (ZT)出版业改革:该死的死,该生的生
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (十三)Flink SQL
  • (一)SpringBoot3---尚硅谷总结
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)ABI是什么
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)一些感悟