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

C语言14-指针4-二维数组传参、指针数组传参、viod*指针

摘要:本文介绍了二维数组和指针数组的传参方法。对于二维整型数组,可通过指针形式传递并操作(如int (p)[3]);字符型二维数组类似,使用char (p)[32]形式。指针数组传参需用二级指针char。void*指针可保存任意类型地址,无需强制转换即可赋给特定类型指针,常用于统一函数参数和返回值类型。文中提供了数组接收、打印的示例代码。

一、二维数组传参

(一)二维整型数组传参

1、基本形式

int a[2][3] ={1,2,3,4,5,6};

fun (a,2);                                                  //主函数调用数组形式

int fun (int (*p)[3],int len);                         //函数体使用定义形式

scanf("scanf'',&p[j][i]);                              //在函数利用循环接收

printf("a[%d][%d]=%d\n",j,i,p[j][i]);           //在函数利用循环打印

2、示例:从终端接收二维数组并打印结果

数组传递到函数体内部与外部操作的是同一数组,外部怎么用内部就怎么用

(二)二维字符型型数组传参

1、基本形式

char str[5][3] ={"hello","world","how","are","you"};

fun(str,5);                                       //主函数调用数组形式

char fun(char (*p)[32],int len);       //函数体使用定义形式

gets(p[i]);                                      //在函数利用循环接收

printf("%s\n",p[i]);                        //在函数利用循环打印

2、示例:

二、指针数组传参

1、基本形式:

char *pstr[5] = {NULL};

fun(pstr,5);                                  //主函数调用数组形式

int fun(char **ppstr,int len);        //函数体使用定义形式

gets(pstr[i]);                               //在函数利用循环接收                

printf("%s\n",ppstr[i]);                  //在函数利用循环打印

2、示例:

三、void *指针

1、void *指针主要用来保存内存地址

2、void* 转换为char *、int *、double * 类型时,不需要类型转换,直接赋值就行

3、char *、int *、double *转换为void *类型时,需要强制类型转换

4、void *多用于函数参数和返回值,统一参数和返回值类型

http://www.lryc.cn/news/604126.html

相关文章:

  • JAVA_TWENTY—ONE_单元测试+注解+反射
  • 在 Cloudflare 平台上完整部署 GitHub 项目 MoonTV 实现免费追剧流程
  • vite + chalk打印输出彩色命令行
  • 并查集介绍及典型应用和编程题
  • Python爬虫01_Requests第一血获取响应数据
  • __getattr__和 __getattribute__ 的用法
  • Docker学习相关视频笔记(二)
  • linux内核报错汇编分析
  • 云原生周刊:2025年的服务网格
  • JSON-RPC 2.0 规范
  • fastjson反序列化时_id的处理
  • WebRTC 2025全解析:从技术原理到商业落地
  • MC0241防火墙
  • 16大工程项目管理系统对比:开源与付费版本
  • 牛客网之华为机试题:密码验证程序
  • python-网络编程
  • Qt 移动应用性能优化策略
  • 板凳-------Mysql cookbook学习 (十二--------7)
  • Android User版本默认用test-keys,如何改用release-keys
  • 北方公司面试记录
  • 前端数据库:IndexedDB从基础到高级使用指南
  • 基于Prophet、滑动平均、加权平均的地铁客流量预测与可视化系统的设计与实现
  • Java【代码 17】httpclient PoolingHttpClientConnectionManager 连接池使用举例
  • 无穿戴动作捕捉技术:驱动历史活化、乐园叙事与教育沉浸的文旅利器
  • [Linux入门] Linux 部署本地 APT 仓库及 NFS 共享服务全攻略
  • 算法精讲:二分查找(一)—— 基础原理与实现
  • 7.28学习日志
  • ICT模拟零件测试方法--晶体管测试
  • 智能Agent场景实战指南 Day 23 : Agent安全与隐私保护
  • k8s搭建nfs共享存储