您的位置:首页 > 编程语言 > C语言/C++

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

2016-05-06 21:03 405 查看
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); 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: