C语言二维数组

二维数组使用行和列来标识数组元素,这类数组需要映射为内存中的一维地址空间。在C中这是通过行–列顺序实现的。先将数组的第一行放进内存,接着是第二行、第三行,直到最后一行。

下面声明了一个2行3列的二维数组,用块语句对数组进行了初始化。图4-2说明了这个数组的内存分配,左图说明内存如何映射,右图显示数组在概念上的样子。

int matrix[2][3] = {{1,2,3},{4,5,6}};

二维数组

我们可以将二维数组当做数组的数组,也就是说,如果只用一个下标访问数组,得到的是对应行的指针。下面的代码说明了这个概念,它会打印每一行的地址和长度:

for (int i = 0; i < 2; i++) {
    printf("&matrix[%d]: %p sizeof(matrix[%d]): %d\n",
            i, &matrix[i], i, sizeof(matrix[i]));
}

下面的输出假设数组位于地址100,因为每行有3个元素,每个元素4字节长,所以组数长度是12:

&matrix[0]: 100 sizeof(matrix[0]): 12
&matrix[1]: 112 sizeof(matrix[1]): 12

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程