我想定义n个变量怎么办?由于数组不能以int n=5;int a[n];的形式进行变量的定义,那么我应该怎么定义自己想要的n个变量呢?(顺便解释一下为什么不能这样定义n个变量)

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/22 14:18:06

我想定义n个变量怎么办?由于数组不能以int n=5;int a[n];的形式进行变量的定义,那么我应该怎么定义自己想要的n个变量呢?(顺便解释一下为什么不能这样定义n个变量)
我想定义n个变量怎么办?
由于数组不能以
int n=5;
int a[n];的形式进行变量的定义,那么我应该怎么定义自己想要的n个变量呢?(顺便解释一下为什么不能这样定义n个变量)

我想定义n个变量怎么办?由于数组不能以int n=5;int a[n];的形式进行变量的定义,那么我应该怎么定义自己想要的n个变量呢?(顺便解释一下为什么不能这样定义n个变量)
数组是静态分配内存的,也就是编译时就分配好,不能在程序执行时改变,动态分配内存可以用malloc函数,比如:
int n;
scanf("%d", &n);    // 输入数组大小
int *a = (int *)malloc(sizeof(int)*n);    // malloc是以字节为单位分配的,所以要用int型的大小乘以长度
for(int i=0;i<n;i++){
    printf("请输入a[%d] :", i);
    scanf("%d", &a[i]);
}