3.4.2 初始化多维数组

    多维数组同样可以在声明的同时对其中的元素进行初始化,如下所示。


    int sz[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};或对部分元素进行初始化,如下所示。 int sz[3][4]={{1,2},{5,6},{9,10}};

    上面的语句仅初始化数组每一行的前两个元素,而未给其他元素赋初值,在这种情况下,其他元素将自动初始化为0。

    注意

    在声明和初始化其中的元素时,同一行中的元素用花括号包裹,并且用逗号隔开。

    当声明语句中提供有全部元素的初始值时,第一维的大小可以缺省,如下所示。


    int sz[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};只提供部分元素的初始化值时,必须能让编译器判断出第一维的大小,这个参数才可省略,如下所示。 int sz[][4]={{1,2,3,4},{2,3},};//等价于int sz[][4]={{1,2,3,4},{2,3,0,0}};编译器认为是2×4维

    注意

    除第一维大小外,其余维的大小一定不能省略,否则程序编译时会出错。因为多数组元素在存取时,需要在一维和多维之间进行转换,如果省略其余维的大小,编译器则无法计算出它们之间的对应关系。