南通哪里做网站centos7系统做网站

张小明 2025/12/30 16:43:27
南通哪里做网站,centos7系统做网站,传奇世界官网电脑版,ppt怎么制作流程图顾名思义#xff0c;所谓的指针函数#xff0c;也就是函数返回值类型为指针类型#xff08;返回地址#xff09;的函数#xff0c;函数格式差不多就是下面这个造型#xff1a;数据类型 *函数名(形参1, …, 形参n );或者更直观更易看懂的造型#xff1a;(数据类型 *) 函数…顾名思义所谓的指针函数也就是函数返回值类型为指针类型返回地址的函数函数格式差不多就是下面这个造型数据类型 *函数名(形参1, …, 形参n );或者更直观更易看懂的造型(数据类型 *) 函数名(形参1, …, 形参n );其中数据类型可以为基本数据类型整型浮点型等如下声明一个返回整型指针的指针函数复制int*add(inta,intb); 或者(int*)add(inta,intb);也可以为复合数据类型最常用的应该就是结构体类型如下声明一个返回结构体指针的指针函数复制ST_DEVICE_STATUS*get_device_status(void); 或者(ST_DEVICE_STATUS*) get_device_status(void);其中ST_DEVICE_STATUS为结构体类型。那究竟指针函数有哪些应用呢指针函数一般可以用来返回字符串和全局变量地址或者返回结构体指针等。1、返回字符串和全局变量地址可以直接返回字符串常量的地址复制char*getMessage(void){returnHello World;// 字符串常量存储在静态区}可以直接返回全局变量的地址复制intg_Value;int*getValue(void){returng_Value;}上面为什么强调说是返回全局变量的地址呢局部变量不行吗是的不能通过上面的方式返回局部变量的地址因为局部变量在函数结束的时候其生命周期也跟着结束了返回的局部变量指针会变成所谓的悬垂指针Dangling Pointer此时你可能会正常读取到局部变量的值但这并不代表代码正确也可能会读取到垃圾值甚至是程序崩溃即所谓的未定义行为我们来实际测试看下结果复制int*getValue(void){intl_value 100;//定义一个局部变量并初始化为100returnl_value;//尝试返回局部变量的地址}程序编译无错误但直接来一条警告信息说明这种操作就存在风险了所以说程序编译时我们也需要关注一下警告信息不能只关注错误信息。至于程序运行结果是不是100咱们就不看了。2、返回结构体指针返回结构体指针其实也是指针函数的很常见的应用它可以以一个简单操作对全局结构体变量的数据进行读写操作非常方便并且避免了直接暴露全局结构体变量到程序代码中。我们来看下代码复制//定义一个结构体记录和更新设备相关的状态信息typedefstruct{uint8_tdevice_status_error;uint8_tdevice_status_alarm;uint8_tdevice_status_warning;} ST_DEVICE_STATUS;//定义一个全局结构体变量记录设备状态信息ST_DEVICE_STATUS g_stDeviceStatus;//定义一个指针函数返回设备状态结构体指针数据(ST_DEVICE_STATUS *) getDeviceStatus(void){returng_stDeviceStatus;}//使用指针函数voidfunc(void){ST_DEVICE_STATUS *pDeviceStatus;pDeviceStatus getDeviceStatus();//读设备状态读操作相当于直接读全局变量g_stDeviceStatusif(pDeviceStatus- device_status_error){}elseiif(pDeviceStatus- device_status_alarm){}//清除设备状态写操作相当于直接写全局变量g_stDeviceStatuspDeviceStatus- device_status_error 0pDeviceStatus- device_status_alarm 0}以上的代码通过指针函数的方式封装了全局结构体变量除了指针函数里直接操作了全局变量其余代码完全不需要直接操作全局变量不仅方便读写也增强了代码的可维护性和可读性。再给大家看下作者开发的实际项目代码另外还可以用来创建链表节点看下面代码复制//定义一个指针函数创建链表节点structNode* createNode(intdata){structNode* node (structNode*)malloc(sizeof(structNode)); node-data data;returnnode;// 返回结构体指针}但是使用指针函数时也需要注意以下几点1、如前文所述一定要注意不要试图返回一个局部变量的地址2、函数返回值的类型和定义的类型一定要匹配3、要注意区分指针函数和函数指针后续文章会介绍函数指针以下的对比基本上就可以看出两者的区别名称基本格式描述原因指针函数int * func(int a, int b) 或者int *func(int a, int b)本质是一个函数返回指针的函数括号优先级大于*func会先与右边结合构成一个func函数函数指针int (*func)(int a, int b)本质是一个指针指向函数的指针*func是一个整体指向int (int a, int b)函数的一个指针---------------------作者dffzh链接https://bbs.21ic.com/forum.php?modviewthreadtid3461016来源21ic.com此文章已获得原创/原创奖标签著作权归21ic所有任何人未经允许禁止转载。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

seo网站外链专发开发小程序教程

一文精通大数据行式存储的性能优化:从原理到实战的全链路拆解 1. 引入与连接:为什么行式存储还需要优化? 1.1 一个真实的痛点场景 某电商平台的订单系统遇到了棘手问题: 运营同学要查用户「小A」最近30天的所有订单记录&#xff0…

张小明 2025/12/29 10:03:09 网站建设

郑州网站提升排名wordpress4.9+多站点

KinhDown突破百度网盘下载限制的终极利器 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web 想要彻底摆脱百度网盘令人抓狂的下载限速吗?KinhDown作为一款专为解决此痛点而生的高效下载工具,通过创新的技…

张小明 2025/12/29 10:02:33 网站建设

网站百度软件开发培训多少钱

DiffSynth-Engine:重新定义扩散模型推理性能的终极引擎 【免费下载链接】DiffSynth-Engine 项目地址: https://gitcode.com/gh_mirrors/di/DiffSynth-Engine DiffSynth-Engine是一款专为扩散模型打造的高性能推理引擎,通过精心优化的推理管道设计…

张小明 2025/12/29 10:01:57 网站建设

php可以做网站app吗网站建设期中考试题

当测试遇见可持续性 全球数据中心年耗电量突破3000亿千瓦时(IEA 2025),数字碳足迹问题迫使软件测试领域亟需转型。本文结合欧盟《数字产品绿色法案》新规及AWS/GCP能效工具实践,为测试工程师提供可落地的绿色测试框架。 一、绿色…

张小明 2025/12/29 10:01:22 网站建设

惠州seo建站电脑编程教学入门教程

Elasticsearch 近似聚合与显著词分析 1. 基数度量(Cardinality Metric) 基数度量是一种近似算法,基于 HyperLogLog++(HLL)算法。HLL 通过对输入进行哈希处理,并利用哈希值的位来对基数进行概率估计。 1.1 算法特性 可配置精度 :精度控制内存使用,精度越高,内存使用…

张小明 2025/12/29 10:00:47 网站建设

世纪城网站建设网站建设公司排名

UART与RS-485在工业现场的实战落地:从原理到调试,一文讲透你有没有遇到过这样的场景?一个温湿度传感器装在车间角落,距离控制柜足足800米;现场电机频繁启停,通信时不时“抽风”,数据时断时续&am…

张小明 2025/12/29 10:00:11 网站建设