1

初始化数组时是否可以声明变量?

例如:

#include <stdio.h>

main()
{
    int x;
    int arr[x];
    
    scanf("%i", &x);
}

或者可能是类似的东西?

任何帮助,将不胜感激。

4

1 回答 1

1

一般来说,你可以写

int x;
scanf("%i", &x);
int arr[x];

在这种情况下,数组arr将是一个可变大小的数组。的值x应大于 0。

否则在这种情况下

int x;
int arr[x];

该变量x未初始化(因为它是一个具有自动存储持续时间的变量),因此数组声明会调用未定义的行为。

于 2021-04-16T19:47:58.760 回答