一维数组
简称数组,形式为a[i],在内存中占用i个大小相等的连续空间,其中数组名a为该空间的首地址,类似于&a[0],数组名不是指针,但可以转化成指针使用。
例如:
char a[3];假设数组的首地址为0x0,
则&a[2]则为0x2;
二维数组
形式为a[i][j],其中i表示行数,j表示列数,在内存中占用i * j个大小相等的连续空间,其中数组名a为该空间的首地址,类似于&a[0][0],a[1]为第1行的首地址,类似于&a[1][0]。
例如:
char a[4][3];假设数组空间的首地址为0,
则,&a[2][2]则为 0x8(2 * 3 + 2)
注意
二维数组作为形参传递时,不同于一维数组,不能直接作为二维指针传递,形参格式如下,后面数组的列数应和二维数组数组一致,不能忽略,三维数组也是如此。
#include <stdio.h>
void print_array(int *array, int len)
{
int i = 0;
for ( ; i < len; i++) {
printf("%d ",array[i])