所以结论是,C的数组没有任何问题,你只是需要一个类库,比如这个,或者你自己随便找的任何一个:/ - ...
而const修饰符在星号之后,则表示指针在被声明后不能改变,即只能指向这个获取的空间,完全符合数组的性质 综上所述,如果需要变量控制长度的一个数组,类似“int a[n];”的,可改成“intconst a = (int)malloc(sizeof(int)*n);”并直接作为数组以[]方式使用。const可以去掉,但要保证使用时不改变a的指向 const...
也只是说你可以用变量去定义数组,但是变长数组的大小在创建后就是不变得,而且变长数组必须的自动的存...
如果你确定你使用的编译器能够很好的支持这个特性,那么你还是完全可以放心用的。有些人认为不建议这么做是因为栈的问题,然而,C标准并没有说VLA必须用栈实现。弄一个带错误校验的,小于零报错,缺省栈分配,空间不够改从堆分配的版本应该是更标准的实现。不过从堆分配当然也会有问题,比方说垃圾回收,但其实编译...
不可以 因为不好编译 不过可以用malloc()申请一段堆内存 这个长度是可变的
这是错误的。 C中有 变长数组 的概念呀(c99标准),“变长”的意思就是 可以用变量来指定数组的长度,而数组一旦创建 长度就无法变化了,而且变量必须赋值在先,变长数组才能创建。某些人不能因为无法正确的设置编译器支持c99标准,而否定了 变长数组 这个用法。
定义数组的时候, 中括号里的必须是常量, 而不能是变量, 也就是说你要么直接写一个数, 要么用#define宏定义一个符号, 而不能使用任何形式的变量(const声明的也是变量, 只不过它的值不能改变)
百度试题 题目定义数组时,表示数组长度的不能是( )。 A.整型变量B.符号常量C.整型常量D.整型常量表达式相关知识点: 试题来源: 解析 A 反馈 收藏
在C语言中,数组的元素可以是变量,也可以是常量。数组在声明时的大小必须是一个常量表达式,这意味着数组的大小在编译时必须是已知的。但是,一旦数组被创建,它的各个元素可以被赋值为变量或常量值。数组元素的值在程序运行时是可以改变的。例如:int array[10]; // 声明一个整数数组,大小为10 int...