以前老是弄不懂数组的存放结构,今天突然想起来,特意研究了一下,由于最常用的也就是一维数组和二维数组,本文就谈一下这两种数组了。
一维数组一句话带过:按顺序现行存放。
二维数组:比如array[5][3],其实就是"5个[3]",最好别用行列来想,其实就是按照"5个[3]"现行存放而已,如下实例:
#include <stdio.h>
int main(int argc, char *argv[])
{
int array[3][2];
printf("array[0][0]:%p\n",&(array[0][0]));
printf("array[0][1]:%p\n",&(array[0][1]));
printf("array[1][0]:%p\n",&(array[1][0]));
printf("array[1][1]:%p\n",&(array[1][1]));
printf("array[2][0]:%p\n",&(array[2][0]));
printf("array[2][1]:%p\n",&(array[2][1]));
return 0;
}
也就是说是这样存的:
至于二维以上的数组,其实就是”前边个后边”,比如array[5][4][3],其实就是”5个[4][3]”.