如果我们不能获取数组大小的用户输入,那么为什么下面的程序运行良好呢?
#include <stdio.h>
int main()
{
int size, key = -1, i;
scanf("%d", &size);
int A[size];
for(i = 0; i < size; i++)
{
scanf("%d", &A[i]);
}
if(A[0] > A[1])
key = 0;
else if(A[size-1] < A[size-2])
key = size-1;
else{
for(i = 1; i <= size-2; i++)
{
if((A[i] > A[i+1])|| (A[i] < A[i-1]))
key = i;
}
}
printf("The key is %d at position %d\n", A[key], key);
return 0;}发布于 2017-03-28 06:23:33
在Variable-Length Array不受支持之前,C编程语言标准中的C99特性随着时间的推移而发生了变化,在C99中,它成为一个强制性特性,在当前的标准https://en.wikipedia.org/wiki/C99中,它成为一个有条件的特性:
C99引入了几个新特性,其中许多已经作为扩展在几个编译器中实现:
因此,这取决于您正在使用的编译器,我认为您使用的编译器支持这个特性。检查此链接:https://en.wikipedia.org/wiki/C99
https://stackoverflow.com/questions/43061614
复制相似问题