首先,要理解一维数组和二维数组其实都是一维数组,在内存中线性存放
提到二维数组如:a[3][4]
很多人的第一印象是这样的:
这样并没有错,但是只能作为一个印象图来理解
而我们要知道二维数组其实是一个一维数组,只不过一维数组的每个元素又是一个一维数组,就像下面这样:
初始化
对二维数组的赋值:
for (i = 0; i < 3; i++) { int j = 0; for (j = 0; j < 4; j++) { a[i][j] = i * 4 + j; } }或者
int i=0,j=0; int a[3][4]={0}; int *p=&a[0][0]; for(i=0;i<3;i++) { for(j=0;j<4;j++) { *(p+i)=i; } }都是可以的。