c语言的编译器还真是不好理解...
代码
#include <stdio.h>
#define Lenth_array_1 8
#define Lenth_array_2 10
/*
功能描述
int (*parr)[length],parr指的是返回一个长度为length的指向int类型的指针
可以这么理解,parr返回的一个一维数组的首地址。
所以parr[i][j]就可以访问任何元素了。
所以 用这个子函数就完成任何长度,任何二维数组的传递
*/
void myarray(int (*parr)[Lenth_array_2])//这里不能写出int myarray(int parr[Lenth_array_1][Lenth_array_1])
{
int i1,j2;//形成个好习惯,i1表示用来循环第一层,而j2表示用来循环第二层,以此类推
for(i1=0; i1<Lenth_array_1; i1++)
{
for(j2=0; j2<Lenth_array_2; j2++)
{
printf("%2d ",parr[i1][j2]);
}
printf("\n");//回车换行,一行一行的打印
}
}
int main(void)
{
int i1,j2; //形成个好习惯,i1表示用来循环第一层,而j2表示用来循环第二层,以此类推
int array[Lenth_array_1][Lenth_array_2];
for(i1=0; i1<Lenth_array_1; i1++)
{
for(j2=0; j2<Lenth_array_2; j2++)
{
array[i1][j2]=i1*Lenth_array_2+j2;//array[0][0]=0, array[0][1]=1,/array[1][0]=1*Lenth_array_1+0=10, ....
}
}
myarray(array);//调用,只需要把二维数组的首地址,即变量名就可以完成调用
return 0;
}
#define Lenth_array_1 8
#define Lenth_array_2 10
/*
功能描述
int (*parr)[length],parr指的是返回一个长度为length的指向int类型的指针
可以这么理解,parr返回的一个一维数组的首地址。
所以parr[i][j]就可以访问任何元素了。
所以 用这个子函数就完成任何长度,任何二维数组的传递
*/
void myarray(int (*parr)[Lenth_array_2])//这里不能写出int myarray(int parr[Lenth_array_1][Lenth_array_1])
{
int i1,j2;//形成个好习惯,i1表示用来循环第一层,而j2表示用来循环第二层,以此类推
for(i1=0; i1<Lenth_array_1; i1++)
{
for(j2=0; j2<Lenth_array_2; j2++)
{
printf("%2d ",parr[i1][j2]);
}
printf("\n");//回车换行,一行一行的打印
}
}
int main(void)
{
int i1,j2; //形成个好习惯,i1表示用来循环第一层,而j2表示用来循环第二层,以此类推
int array[Lenth_array_1][Lenth_array_2];
for(i1=0; i1<Lenth_array_1; i1++)
{
for(j2=0; j2<Lenth_array_2; j2++)
{
array[i1][j2]=i1*Lenth_array_2+j2;//array[0][0]=0, array[0][1]=1,/array[1][0]=1*Lenth_array_1+0=10, ....
}
}
myarray(array);//调用,只需要把二维数组的首地址,即变量名就可以完成调用
return 0;
}