c++中能否用变量定义数组元素个数?

c中貌似有问题,但是在c++中会出现同样的问题吗?比如,int a=5,double stu[a].,不好意思这么基本的问题还没搞清楚,谢谢啦。

笔误,不是“唯独”,是“维数”

C++中使用变量来定义数组是合法的,你还可以通过外部输入n来定义这个数组的大小。

#include <stdio.h>
int main(){
    int n;
        scanf("%d",&n);
        int a[n]
        for(int i ; i < n; i++){
            a[i] = i;
                printf("%i ", a[i]);
        }
        printf("size = %i\n", sizeof(a));
        return 0;
}

编译运行结果

enum {a=5;};
double stu[a];

可以,a最好为静态变量
staitc int a=5;
double stu[a];

const常量 const int a=5 a[5]

数组唯独不可以用普通变量,可以用常量变量或宏。

以下为合法使用:

char a[5] = "1234";

const int num = 5;
char b[num] = "1234";

int vnum = 5;
char *arrayp = new char[vnum];
arrayp = "1234";

似乎和编译器有关(我的一直可以),具体情况不明,等候大佬解惑