C语言中为什么用变量定义数组的大小不能初始化?

C99不是规定可以用变量定义数组的大小,但是定义了之后初始化会报错。
const int number=100;
int prime[number]={2};
报错信息:[Error] variable-sized object may not be initialized;

阅读 6.6k
1 个回答

标准只说你可以使用变量定义数组,但又没说你可以初始化该数组 /笑

这是因为你的初始化器({0})在编译时就已经确定了,而你的 number 是运行时才能确定的量,所以此时数组并不能确定,你说怎么把一个确定的量初始化给一个不确定的量呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进