C99标准允许可变大小的阵列(请参阅 这 ).但是,与普通数组不同,可变大小的数组无法初始化。
null
例如,以下程序在C99兼容的编译器上编译并运行良好。
#include<stdio.h> int main() { int M = 2; int arr[M][M]; int i, j; for (i = 0; i < M; i++) { for (j = 0; j < M; j++) { arr[i][j] = 0; printf ( "%d " , arr[i][j]); } printf ( "" ); } return 0; } |
输出:
0 0 0 0
但以下操作失败,出现编译错误。
#include<stdio.h> int main() { int M = 2; int arr[M][M] = {0}; // Trying to initialize all values as 0 int i, j; for (i = 0; i < M; i++) { for (j = 0; j < M; j++) printf ( "%d " , arr[i][j]); printf ( "" ); } return 0; } |
输出:
Compiler Error: variable-sized object may not be initialized
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END