如何在C中传递二维数组作为参数?
时间:2022-07-24
本文章向大家介绍如何在C中传递二维数组作为参数?,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
回答:
在C语言中,有很多方法可以将2d数组作为参数传递。在下面的部分中,我描述了将2d数组作为参数传递给函数的几种方法。
使用指针传递2d数组以在c中运行
多维数组的第一个元素是另一个数组,所以在这里,当我们传递一个2D数组时,它将被分割成一个指向数组的指针。
例如,
如果int aiData [3] [3]是一个整数的二维数组,它将被拆分成一个指向3个整数数组的指针(int(*)[3])。
#include <stdio.h>
//Size of the created array
#define ARRAY_ROW 3
#define ARRAY_COL 3
void ReadArray(int(*piData)[ARRAY_COL])
{
int iRow = 0;
int iCol = 0;
for (iRow = 0; iRow < ARRAY_ROW; ++iRow)
{
for (iCol = 0; iCol < ARRAY_COL; ++iCol)
{
printf("%dn", piData[iRow][iCol]);
}
}
}
int main(int argc, char *argv[])
{
//Create an 2D array
int aiData[ARRAY_ROW][ARRAY_COL] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
//Pass array as a parameter
ReadArray(aiData);
return 0;
}
将2d数组传递给行和列
函数的原型应该与传递数组相同。换句话说,我们可以说如果int aiData [3] [3]是一个2D数组,那么函数原型应该类似于2D数组。
#include <stdio.h>
//Size of the created array
#define ARRAY_ROW 3
#define ARRAY_COL 3
void ReadArray(int aiData[ARRAY_ROW][ARRAY_COL])
{
int iRow = 0;
int iCol = 0;
for (iRow = 0; iRow < ARRAY_ROW; ++iRow)
{
for (iCol = 0; iCol < ARRAY_COL; ++iCol)
{
printf("%dn", aiData[iRow][iCol]);
}
}
}
int main(int argc, char *argv[])
{
//Create an 2D array
int aiData[ARRAY_ROW][ARRAY_COL] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
//Pass array as a parameter
ReadArray(aiData);
return 0;
}
使用指向2D数组的指针传递2d数组
如果int aiData [3] [3]是一个整数的二维数组,则&aiData将指向具有3行和3列的2d数组。
#include <stdio.h>
//Size of the created array
#define ARRAY_ROW 3
#define ARRAY_COL 3
void ReadArray(int(*piData)[ARRAY_ROW][ARRAY_COL])
{
int iRow = 0;
int iCol = 0;
for (iRow = 0; iRow < ARRAY_ROW; ++iRow)
{
for (iCol = 0; iCol < ARRAY_COL; ++iCol)
{
printf("%dn", (*piData)[iRow][iCol]);
}
}
}
int main(int argc, char *argv[])
{
//Create an 2D array
int aiData[ARRAY_ROW][ARRAY_COL] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
//Pass array as a parameter
ReadArray(&aiData);
return 0;
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 文件操作——读取
- YAML,另一种标记语言?不止是标记语言!
- Canal binlog 日志管理器与GTID简介
- RNA-Seq的Counts和FPKM数据如何转换成TPM?
- Java代码审计基础之反射
- 手把手教你用Python开发“剪刀石头布”小游戏【附源码】
- For语句
- 使用go语言制作dll封装Sprintf函数给VBA使用
- 同事埋了个坑:Insert into select语句把生产服务器炸了
- VBA使用API_01:读取文件
- 从0到1,撸一个IDEA插件,So Easy!
- VBA调用外部对象02:FileSystemObject
- VCS与Verdi的联合仿真
- ADC数据接入到AXI-Steam Interface
- Java面试必问:ThreadLocal终极篇 淦!