回答:

在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])

{

;

;

; iRow < ARRAY_ROW; ++iRow)

{

; iCol < ARRAY_COL; ++iCol)

{

printf("%d\n", piData[iRow][iCol]);

}

}

}

int main(int argc, char *argv[])

{

//Create an 2D array

} };

//Pass array as a parameter

ReadArray(aiData);

;

}

将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])

{

;

;

; iRow < ARRAY_ROW; ++iRow)

{

; iCol < ARRAY_COL; ++iCol)

{

printf("%d\n", aiData[iRow][iCol]);

}

}

}

int main(int argc, char *argv[])

{

//Create an 2D array

} };

//Pass array as a parameter

ReadArray(aiData);

;

}

使用指向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])

{

;

;

; iRow < ARRAY_ROW; ++iRow)

{

; iCol < ARRAY_COL; ++iCol)

{

printf("%d\n", (*piData)[iRow][iCol]);

}

}

}

int main(int argc, char *argv[])

{

//Create an 2D array

} };

//Pass array as a parameter

ReadArray(&aiData);

;

}

如何在C中传递二维数组作为参数?的更多相关文章

  1. C/C++怎样传递二维数组,转载自CSDN

    用二维数组作为参数传递(用二维数组处理矩阵),但是希望接受传递二维数组参数的函数可以处理任意维度的数组(希望矩阵的行数和列数都是不固定的). [以下转帖] ---------------------- ...

  2. C语言传递二维数组

    方法一, 形参给出第二维的长度. 例如: #include <stdio.h> ] ) { int i; ; i < n; i++) printf("/nstr[%d] = ...

  3. C/C++如何传递二维数组?

    用二维数组作为参数传递(用二维数组处理矩阵),但是希望接受传递二维数组参数的函数可以处理任意维度的数组(希望矩阵的行数和列数都是不固定的). ----------------------------- ...

  4. C#中读取二维数组每位的长度

    C#中的二维数组,如int[,] A=new int[a,b];则 a=A.GetLength(0);即可获得二维数组中第一维的长度. b=A.GetLength(1);即可获得二维数组中第二维的长度 ...

  5. Java中的二维数组

    Java 中的二维数组 所谓二维数组,可以简单的理解为是一种"特殊"的一维数组,它的每个数组空间中保存的是一个一维数组. 那么如何使用二维数组呢,步骤如下: 1. 声明数组并分配空 ...

  6. iOS中的二维数组

    首先我们知道OC中是没有二维数组的,二维数组是通过一位数组的嵌套实现的,但是别忘了我们有字面量,实际上可以和C/C++类似的简洁地创建和使用二维数组.这里总结了创建二维数组的两种方法以及数组的访问方式 ...

  7. 一些Python中的二维数组的操作方法

    一些Python中的二维数组的操作方法 这篇文章主要介绍了一些Python中的二维数组的操作方法,是Python学习当中的基础知识,需要的朋友可以参考下 需要在程序中使用二维数组,网上找到一种这样的用 ...

  8. php中遍历二维数组并以表格的形式输出

    一.索引数组 <?php //使用array()语句结构将联系人列表中所有数据声明为一个二维数组,默认下标是顺序数字索引 $contact1 = array( //定义外层数组 array(1, ...

  9. Java 中的二维数组

    所谓二维数组,可以简单的理解为是一种“特殊”的一维数组,它的每个数组空间中保存的是一个一维数组. 那么如何使用二维数组呢,步骤如下: 1. 声明数组并分配空间 或者 如: 2. 赋值 二维数组的赋值, ...

随机推荐

  1. STL常用

    nth_element(first,nth,last) first,last 第一个和最后一个迭代器,也可以直接用数组的位置. 将第n个大的元素放到nth位置上,左边元素都小于它,右边元素都大于它. ...

  2. java当中JDBC当中Scrollable和Updatable ResultSet的用法和Helloworld例子

    [学习笔记] 在前面的jdbc的Helloworld程序当中,我们接触了最简单的 Statement.那种Statement的光标只能向前移.意思就是访问完2,只能继续访问3,不能再回过头来访问1.还 ...

  3. 【坑】前后端分离开发中 跨域问题以及前台不带cookie的问题

    文章目录 前言 跨域问题 cookie问题 拦截器导致的跨域问题 后记 前言 场景一: 前台哒哒哒的点击页面,发送请求,但是后台服务器总是没有回应,后台接口虽打了断点,但是根本进不到断点处: 前端:我 ...

  4. Python重要配置大全

    PYTHON 环境安装 安装虚拟环境 pip install virtualenv 卸载包是用:pip uninstall virtualenv 快捷下载安装可用豆瓣源,方法为: pip instal ...

  5. springboot基础、注解等

    SpringBoot 1.springboot概念 Spring Boot是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. ...

  6. 基于socketserver实现并发的socket套接字编程

    一.基于TCP协议 基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环 socketserver模块中分两大类:server类(解决链接问题)和request类(解决通信问题) 1.1 ...

  7. h5开发微信公众号重定向到关注页面没有关注按钮 (微信你个坑)

    搜索微信公众号是这样的 微信公众号重定向到关注页面没有关注按钮 如何微信公众号重定向到关注页面没有关注按钮,请看上篇笔记 无解,微信一直在封这种通过链接跳转到公众号关注页面的方法.只有放个二维码提示长 ...

  8. PB笔记之取项次最大值(即使用.describe(" evaluate('ITM_max',0) ") 获取列的最大值) 的条件

    dw_1.describe(" evaluate('ITM_max',0) ")  :使用 describe 配合 evaluate 取列的最大最小值(或其它表达式)时,必须在数据 ...

  9. jdk8新特性--使用lambda表达式的延迟执行特性优化性能

    使用lambda表达式的延迟加载特性对代码进行优化:

  10. github的pull request是指什么意思?有什么用处(转)

    https://www.cnblogs.com/-walker/p/6093277.html