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);
时间: 2024-10-13 07:16:15