C语言程序设计(第5章数组)2
5.2二维数组
5.2.1二维数组的一般形式
C语言允许多维数组,最简单的多维数组就是二维数组。实际上,二维数组是由一维数组组成的数组。要把D解释为一个大小为(10,20)的二维整数数组,可以写成:
int d[10][20]
请注意上面的解释语句。c不像其他大多数计算机语言那样用逗号来区分下标,而是用方括号把每一维的下标括起来,
同样,数组D中要访问的下标为(3,5)的元素可以写成:
d[ 3 ][ 5]
在例5-3中,整数1到12被加载到一个二维数组中。
[例5-3]
main()
{
int t,I,num[3]0123
01234
15678
29101112
for(t = 0;t for(I = 0;I num[t][I]=(t * 4)+I+1;
}
在这个例子中,num[0][0]的值是1,num[0][2]的值是3,...并且num[2][3]的值是1 2。请将此数组视为下表:
[4]
二维数组以行列矩阵的形式存储。第一个下标代表行,第二个下标代表列,这意味着当数组元素在内存中以实际存储顺序被访问时,右下标比左下标变化得快。图5-2显示了一个内存中的二维数组。事实上,第一个游标可以被认为是指向一行的指针。
记住,一旦数组被证明,所有数组元素都会被分配到对应的存储空房间。对于二维数组,需要的内存字节可以用下面的公式计算:
行数×列数×类型字节数=总字节数
因此,假设一个两字节的整数,大小为(10,5)的整数数组将需要:10×5×2=100字节,当二维数组作为函数的参数时,实际上传递的是第一个。但是,这个函数必须至少定义第二维的长度,因为C编译器需要知道每一行的长度,才能正确地检索数组。例如,将接收大小为(10,10)的二维数组的函数可以解释如下:
func 1(x)
int x[][10]
{
。
。
0条评论