本文依据个人学习及工作经验整理而成,如有错误请留言。
文章为个人辛苦整理,付费内容,禁止私自转载。
文章所在专栏:《黑猫带你记:C语言易错易忘知识点》
参考例程。
例子中所有测试代码都是用gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0进行编译的。
test1函数是可行的。
但是网上也有人说编译不过,貌似原因在于使用的编译器不一样,听说C99标准支持,有的标准不支持。
test2编译不过,定义int a[num];的时候,num是个不确定的值。
test3/4/5都是可行的。
由此得出结论:
数组元素中个数必须为常量,不能为变量,所述不是很正确,即使是变量也有可能可以。其实其愿意应该是数组元素中个数必须是确定,不能是不确定的个数。即使元素个数是个变量,但是只要赋值了,只要是确定的,也是可行的。
但是,网上也有人编译不通过,所以个人认为是和编译器以及支持哪种C标准有关(例如C99/C11/C90…),所以不必要纠结,最好还是不要将数组元素设置为变量&