百度试题 结果1 题目C允许对数组的大小作动态定义,即可用变量定义数组的大小。 ( ) A. 正确 B. 错误 相关知识点: 试题来源: 解析 B 正确答案:B 解析:数组的大小可以用不加参数的方式动态的数组的大小。 知识模块:C语言反馈 收藏
在C99及以后的版本中,可以使用变量来声明数组的大小,但该变量必须在数组声明之前已经定义并初始化。例如: c int size = 10; int arr[size]; // 这是合法的,因为size在数组声明前已经定义并初始化 变长数组使用时的限制和注意事项: 变长数组的大小必须是运行时确定的,并且数组的大小表达式中不能包含任何未...
在C语言中,数组的大小必须是一个常量表达式,而不能使用变量来定义数组大小。这是因为数组在编译时就需要分配内存空间,而变量的值只能在运行时确定,所以无法使用变量来定义数组的大小。如果需要根据变量的值...
也只是说你可以用变量去定义数组,但是变长数组的大小在创建后就是不变得,而且变长数组必须的自动的存...
C语言里,所有变量空间都是在程序运行之初向系统申请的,包括指针,除了一些动态申请方式如malloc函数。没有申请的空间系统是不允许读写的。那么如果一个数组大小是变量定义,则在程序运行前不能确定数组大小,也就无法申请,故不允许。所以,解决的办法便是通过malloc函数,即 ...
然而,C标准并没有说VLA必须用栈实现。弄一个带错误校验的,小于零报错,缺省栈分配,空间不够改从堆分配的版本应该是更标准的实现。不过从堆分配当然也会有问题,比方说垃圾回收,但其实编译器把实现做得健壮点,考虑周全些,这些都是能做到的,因此这个特性,用当然是可以用的。
可以,不同的编译器有不同的实现方式,就像你在不同的编译器上运行同样的代码,得到的结果却不一样。
C语言中数组定义长度的时候只能用整形常量,不能用整形变量。 原因在于c语言中所有变量空间都是在程序运行之初向系统申请的,包括指针、数组(除了一些动态申请方式如malloc函数),没有申请的空间系统是不允许读写的。也就是说,在程序运行之初,输入操作之前,定义的数组就先要向系统申请自身大小的空间,如果此时数组的大小...
C89 是不支持变长数组的。C99 开始支持用变量作为数组长度了。但是现在很多编译器不是完全支持 C99 要...