在 C/C++ 中,多维数组的初始化可以将最左边的维度作为可选。除了最左边的维度,所有其他维度都必须指定。
例如,以下程序编译失败,因为未指定两个维度。
以下 2 个程序可以正常工作。
#include<stdio.h>
int main()
{
int a[][][2] = { {{1, 2}, {3, 4}},
{{5, 6}, {7, 8}}
}; // error
printf("%d", sizeof(a));
getchar();
return 0;
}
// Program 1
#include<stdio.h>
int main()
{
int a[][2] = {{1,2},{3,4}}; // Works
printf("%lu", sizeof(a)); // prints 4*sizeof(int)
getchar();
return 0;
}
// Program 2
#include<stdio.h>
int main()
{
int a[][2][2] = { {{1, 2}, {3, 4}},
{{5, 6}, {7, 8}}
}; // Works
printf("%lu", sizeof(a)); // prints 8*sizeof(int)
getchar();
return 0;
}