#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    int L[n];
    // ...
    return 0;
}

我想问的是,是否可以根据需要使用变量给出数组中元素的数量.老师告诉我们不推荐这种方法,我不明白为什么.谢谢你回答我的问题.

推荐答案

这份声明

int L[n];

是可变长度数组的声明.编译器有条件地支持可变长度array.

因此,不排除您会遇到不支持此类声明的编译器.

请注意,在本声明中,变量n的值应大于0.

由于这样的数组具有自动存储持续时间,因此其大小不应变化太大.否则,应该动态地为数组分配内存.

C++相关问答推荐

修改pGM使用指针填充2-D数组但不起作用

需要大整数和浮点数.使用long long int和long double

如何在C宏中确定Windows主目录?

为什么可以通过指向常量int的指针间接地改变整数的值?

为什么双重打印与C中的float具有不同的大小时具有相同的值?

初始变量重置后,char[]的赋值将消失

如何在ASM中访问C struct 成员

Clang警告称,`ffi_type`与`sizeof`不兼容

插座打开MacOS组件

C代码在字符串中删除不区分大小写的子字符串的问题

我正在try 将QSORT算法实现为C++中的泛型函数

共享目标代码似乎不能在Linux上的进程之间共享

可以对两种 struct 类型中的任何一种进行操作的C函数

C: NULL>;NULL总是false?

使用 strtok 多次分割一个字符串会导致意外行为

free后内存泄漏?

使用fread()函数读取txt文件

为什么创建局部变量的指针需要过程在堆栈上分配空间?

C23 中的 [[reproducible]] 和 [[unsequenced]] 属性是什么?什么时候应该使用它们?

在 printf() 格式说明符中使用字段宽度变量