【C语言】二维数组:定义与传参

1、定义二维数组

1.1 直接定义:int a[1001][2]

复制代码
int array[1001][2];

1.2 使用普通数组的指针

复制代码
int (*array)[2]; // 定义一个指向有两个元素的数组的指针
array = malloc(1001 * sizeof(int[2])); // 动态分配大小为[1001][2]的内存

1.3 使用双重指针

复制代码
int **array; // 定义一个二级指针
array = malloc(1001 * sizeof(int *)); // 为每一行分配指针
for (int i = 0; i < 1001; i++) {
    array[i] = malloc(2 * sizeof(int)); // 为每一行的列分配内存
}

2、二维数组传参

2.1 固定大小的二维数组作为参数

复制代码
void myFunction(int array[1001][2]) {
    // 处理二维数组
}

void myFunction(int array[][2]) {
    // 处理二维数组
}

int array[1001][2];
myFunction(array); // 传递二维数组

2.2 使用指向数组的指针作为参数

复制代码
void myFunction(int (*array)[2]) {
    // 处理二维数组
}

int array[1001][2];
myFunction(array); // 传递二维数组
相关推荐
寄存器漫游者35 分钟前
数据结构 C语言 顺序栈
java·c语言·数据结构
日拱一卒——功不唐捐1 小时前
循环队列+双端队列(C语言)
c语言·数据结构
进击的小头1 小时前
设计模式组合应用:嵌入式通信协议栈
c语言·设计模式·策略模式
养军博客1 小时前
C语言五天速成(可用于蓝桥杯备考 难度中等偏下)
c语言·算法·蓝桥杯
leaves falling2 小时前
c语言单链表
c语言·开发语言
请注意这个女生叫小美2 小时前
C语言实例22 乒乓球比赛
c语言
方便面不加香菜2 小时前
数据结构--链式结构二叉树
c语言·数据结构
Tingjct2 小时前
十大排序算法——交换排序(一)
c语言·开发语言·数据结构·算法·排序算法
senijusene3 小时前
数据结构与算法:栈的基本概念,顺序栈与链式栈的详细实现
c语言·开发语言·算法·链表
星火开发设计3 小时前
命名空间 namespace:解决命名冲突的利器
c语言·开发语言·c++·学习·算法·知识