C++基础知识——二维数组做函数参数

本文介绍如何处理二维数组,包括确定大小的数组直接使用、不确定大小的数组通过指针转换及一维指针转换的方法,并提供了具体的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.确定大小的二维数组


void Func(int array[3][10]); 


void Func(int array[][10]); 
2.不确定大小的二维数组转为二维指针:
从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,所以可以转换成二维指针。
void Func(int **array, int m, int n); 


调用时候要把数组名转换位二维指针


Func((int**)a, 3, 3); 


获取具体数组元素


*((int*)array + n*i + j); 

:其中 (int *)array把array转换成一维数组的存储方式
然后从一维数组里读取元素。


若*(array + n*i + j);  输出:


00000001
00000002
00000003
00000004
00000005
00000006
00000007
00000008
00000009
0000000A
0000000B
0000000C
0000000D
0000000E
0000000F
00000010


若*((int*)array + n*i + j); 输出:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16


3.最方便的还是转为一维指针。

因为在内存中是连续存放的,所以。。。。。

void Func(int *array, int m, int n); 


调用时候要把数组名转换位二维指针


Func((int*)a, 3, 3); 


获取具体数组元素


*(array + n*i + j); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值