二维数组
1、二维数组传值
一共三种方法可以实现:
-
int a[5][10];
函数这样定义:
void func(int (*p)[10])
{
.............. //处理语句,就可以这样使用:p[i][j]
}
这样调用:func(a); -
二维数组相当一个指向指针的指针
所有, 只要这样就可以了
void fun(int **p)
{
} -
可以对二维数组进行降维处理,看作一维数组,传递数组首地址,并且将数组二维长度传递过去,在函数中要访问a[i][j],即可以通过*(p+i*col+j),其中的col即二维长度。
例子:
在VC中,二维数组t[3][3],把t传给指向指针的指针**G,一般通不过,可以用指向一维数组的指针,该成(*G)[3
#include <stdio.h>
void print(int (*p)[3])
{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%d,",*(*(p+i)+j));
printf("\n");
}
void main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9};
print(a);
}
待续