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 *多用于函数参数和返回值,统一参数和返回值类型

相关推荐
应用市场32 分钟前
构建自定义命令行工具 - 打造专属指令体
开发语言·windows·python
东方佑35 分钟前
从字符串中提取重复子串的Python算法解析
windows·python·算法
西阳未落1 小时前
LeetCode——二分(进阶)
算法·leetcode·职场和发展
通信小呆呆1 小时前
以矩阵视角统一理解:外积、Kronecker 积与 Khatri–Rao 积(含MATLAB可视化)
线性代数·算法·matlab·矩阵·信号处理
Dfreedom.1 小时前
一文掌握Python四大核心数据结构:变量、结构体、类与枚举
开发语言·数据结构·python·变量·数据类型
一半烟火以谋生1 小时前
Python + Pytest + Allure 自动化测试报告教程
开发语言·python·pytest
虚行1 小时前
C#上位机工程师技能清单文档
开发语言·c#
小羊在睡觉2 小时前
golang定时器
开发语言·后端·golang
CoderCodingNo2 小时前
【GESP】C++四级真题 luogu-B4068 [GESP202412 四级] Recamán
开发语言·c++·算法
一个不知名程序员www2 小时前
算法学习入门---双指针(C++)
c++·算法