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

C语言二级指针和void *应用

1、二级指针

指向指针的指针 --- 二级指针

// 二级指针一般用来改变一级指针的指向。

int a = 30;int b = 50;int * p = &a;// 定义一个指针指向p// 指针指向对象类型: int *int * * q;   // int **q;q = &p;// 改变一级指针的指向*q = &b;printf(“%p\n”,p);  // &bprintf(“%d\n”,*p); // b

场景:

        在函数内部需要 改变外部指针的指向。        

#include<stdio.h>int b = 50;函数(int * *q){// 修改主函数中p指针的指向*q = &b;}int main(){int a = 30;int * p = &a;函数(&p);printf("%p\n",p);printf("%d\n",*p);return 0;}

​​​​​​​2、void * - 万能指针

void * 数据类型;

        void *指针可以接受任意类型的地址,

        void *型的地址也可以被任意类型的指针接受

void * 用作函数返回值类型或者参数。

        返回值是void *: void *malloc( size_t size );

        形参类型是void *:  void *memset( void *buffer, int ch, size_t count );

                                          // 按照字节 将空间的数据设置成某一个字符 ch

举例:        

int a[5] = {2,5,6,7,10};// 需求: 将数组里面数据清0memset(a,0,sizeof(a));char str[] = “hello”;memset(str,’\0’,sizeof(str));

http://www.xdnf.cn/news/13898.html

相关文章:

  • 质因数分解_java
  • 前端开发冷知识-requestIdleCallback优化主线程任务调度的API
  • 微服务集成seata分布式事务 at模式快速验证
  • 《模拟》题集
  • 图像处理 | 如何动态调整CLAHE算法中的ClipLimit参数
  • DeepSeek AI功能演示:如何生成Verilog脚本
  • 【基础】每天掌握一个Linux命令 - systemctl
  • PurgeCSS:CSS瘦身优化性能终极解决方案
  • Geeksend 邮箱验证:低成本验证
  • 文件的秒传、分片上传以及断点续传 || Redis缓存减轻数据库读写压力
  • 2.0 第一个Node节点
  • 6.12 操作系统面试题 进程管理
  • Vue 3 前端和 Spring Boot 后端生成 Docker 镜像的标准做法
  • Spring Boot 整合 Smart-Doc:零注解生成 API 文档,告别 Swagger
  • 电压互感器类型与消谐器需求的关联
  • LeetCode 137 有限状态自动机解法原理详解
  • 测试:AWS SDK for JavaScript v2 迁移到 v3
  • 帆软报表实现层层下钻继承上上层报表参数
  • ollama+docker+dify配置指南
  • CQL3D输入文件及参数解释
  • linux中执行脚本命令的source和“.”和“./”的区别
  • 校园网数据安全防线
  • sed命令在修改Rocky Linux镜像源配置文件中的作用:
  • AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月12日第106弹
  • 晶圆搬运机器人与RFID半导体读卡器携手赋能半导体制造高效变革
  • 探索铸铁试验平台在制造行业的卓越价值
  • HALCON第一讲->数据结构、语法规则与思路
  • 深度学习网络入侵检测系统警报
  • RX Clock Correction Attributes
  • 使用freemarker模板 生成 word文档