二维数组在概念上是二维的,但实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的
在一维存储器中存放二维数组有两种方式:一是按行排列,即放完一行之后顺次放入第二行,二是按列排列,即放完一列之后再顺次放入第二列,在c中二维数组是按行排列的。
多维数组元素在内存中的排列顺序:第一维的下标变化最慢,最右边的下标变化最快。
二维数组元素的引用和初始化
数据类型 数组名[常量表达式][常量表达式]={初始化数据};
有4种方式可以初始化
1直接分行给二维数组赋初值。
int a[3] [4]={{0,0,0,0},{0,0,0,0},{0,0,0,0}};
2可以将数据直接写在一个花括弧中,按数组排列的顺序对各元素赋初值。
int a [3] [4]={0,0,0,0,0,0,0,0,0,0,0,0};
3可以对部分元素赋初值。
int a[3] [4]={{1},{2},{2}};
也可以对各行中的某一个元素赋初值
int a[3] [4]={{1},{0,6},{0,0,0}};
4如果要对全部元素都都赋初值,则定义数组时对第一维的长度可以不指定,但第二位的长度不能省
int [3] [4]={0,0,0,0,0,0,0,0,0,0,0,0};
等于
int [] [4]={0,0,0,0,0,0,0,0,0,0,0,0};
在定义时也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。
int a[] [4]={{0,6,3},{},{0,55}}
#if(0)
跳过好多东西的好方法
#endif
几天啦,我学的真慢…