C语言中二维数组作为函数参数来传递的三种方法

C语言中二维数组作为函数参数来传递的三种方法 在C语言中,二维数组作为函数参数来传递是非常常见的操作。但是,如何正确地传递二维数组作为函数参数却是许多初学者和开发者经常混淆的地方。今天,我们将详细介绍C语言中二维数组作为函数参数来传递的三种方法。 方法一:形参给出第二维的长度 在这种方法中,我们可以在函数参数中指定第二维的长度。例如: ```c void func(int n, char str[][5]) { int i; for(i = 0; i < n; i++) printf("/nstr[%d] = %s/n", i, str[i]); } void main() { char* p[3]; char str[][5] = {"abc","def","ghi"}; func(3, str); } ``` 在上面的示例代码中,我们在函数参数中指定了第二维的长度为5。这样,在函数体中,我们可以使用str[i]来访问二维数组的每个元素。 方法二:形参声明为指向数组的指针 在这种方法中,我们可以将函数参数声明为指向数组的指针。例如: ```c void func(int n, char (*str)[5]) { int i; for(i = 0; i < n; i++) printf("/nstr[%d] = %s/n", i, str[i]); } void main() { char* p[3]; char str[][5] = {"abc","def","ghi"}; func(3, str); } ``` 在上面的示例代码中,我们将函数参数声明为指向数组的指针。这样,在函数体中,我们可以使用str[i]来访问二维数组的每个元素。 方法三:形参声明为指针的指针 在这种方法中,我们可以将函数参数声明为指针的指针。例如: ```c void func(int n, char str) { int i; for(i = 0; i < n; i++) printf("/nstr[%d] = %s/n", i, str[i]); } void main() { char* p[3]; char str[][5] = {"abc","def","ghi"}; p[0] = &str[0][0]; p[1] = str[1]; p[2] = str[2]; func(3, p); } ``` 在上面的示例代码中,我们将函数参数声明为指针的指针。这样,在函数体中,我们可以使用str[i]来访问二维数组的每个元素。 需要注意的是,在第三种方法中,我们不能使用array[i][j]这种形式来取值,而是需要将二维数组看成一个一维数组,使用array[i * j + j]这种形式来进行取值。这是因为在传参的时候,我们将array[][]数组当成二级指针来进行传递,所以这里不能使用array[i][j]这种方式来进行数组取值。 C语言中二维数组作为函数参数来传递有三种方法:形参给出第二维的长度、形参声明为指向数组的指针、形参声明为指针的指针。每种方法都有其特点和应用场景,我们需要根据具体情况选择合适的方法。

















- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- DSP的运动目标图像跟踪算法与实现-工学基础.docx
- 2023年剪叉式物流液压升降台的设计有全套cad图.doc
- 第27次中国互联网发展状况统计报告.docx
- SIFT算法原理.doc
- 操作系统知识点.docx
- EXCEL应用技巧(快捷键).pdf
- SBR工艺的自动化控制.doc
- IT项目管理复习题与思考.doc
- DB23_T_2943_2021_龙榛果园营建技术规程.pdf
- Excel表格通用模板:家庭装潢装修装潢预算表.xls
- Excel表格通用模板:实用仓库进销存表格.xlsx
- VS2010-VB环境读取TXT文件任意行.doc
- 2023年数据库原理及应用实验报告.doc
- BootstrapBlazor-C#资源
- Q VBAU 0003 S-2018 维生素饮料.pdf
- 2023年计算机二级MsOffice选择题汇总.docx



- 1
- 2
前往页