它是强制性的,在分配时,我们应该提到的数组大小,而编写程序

在让我们C它提到,“分配一个数组时,我们必须提交在编写程序时的数组大小”。但是在下面的代码中,我在执行时给出了大小,但仍然在运行,所以这是正确的?它是强制性的,在分配时,我们应该提到的数组大小,而编写程序

代码:

所有的

#include <stdio.h> 

void main(){

{

int n,i;

printf("give the size of the array \n");

scanf("%d",&n);

int a[n];

printf ("give array elements\n");

for (i=0;i<n;i++)

{

scanf("%d",&a[i]);

}

}

回答:

首先,我认为你的意思声明而不是分配。

也就是说,这叫做variable length array或VLA。这是一个C99以上的增加。

引用C11,章§6.7.6.2/ P4

如果尺寸是整数常量表达式 和元素类型具有已知的恒定大小,阵列类型不是可变长度 阵列型;否则,数组类型是可变长度数组类型。

回答:

这是一个variable-length array并且在C中是完全有效的(自C99标准以来)。

您应该更新您的书籍。 Here's a list of good ones。

以上是 它是强制性的,在分配时,我们应该提到的数组大小,而编写程序 的全部内容, 来源链接: utcz.com/qa/263052.html

回到顶部