#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//只要第一个[]的数字可以不写,其它必需写
//void func01(int a[3][4]) //形参中的数组是指针变量
//void func01(int a[][4])
void func01(int (*a)[4])
{
}
//实参为首元素地址,首元素为int [4][5]
void func02(int(*p)[4][5])
{
}
int main(void)
{
int a[3][4];
func01(a);
int b[3][4][5];
func02(b);
printf("\n");
system("pause");
return 0;
}
内存可以看成是线性的
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
int a[12] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
typedef int(*PARRAY)[4];
PARRAY p;
p = (PARRAY)a;
int i, j;
for (i = 0; i < 3; ++i)
{
for (j = 0; j < 4; ++j)
{
printf("%d, %d\n", p[i][j], *(*(p + i) + j));
}
}
printf("\n");
system("pause");
return 0;
}
int main01(void)
{
int a[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
int *p;
p = (int *)a;
int i = 0;
for (i = 0; i < 12; ++i)
{
printf("%d, ", *(p+i));
}
printf("\n");
system("pause");
return 0;
}