关于c99标准中的不定长数组

博主我在刚读大一学习c语言的时候,写过这样一段代码:

#include <stdio.h>

int main(void)
{
    
    
	int n;
	scanf("%d",&n);
	int a[n];
	return 0;
}

很明显,我是想从键盘读入一个整数n,然后定义一个大小为n的整性数组。当时程序的运行环境是vc6.0,这个程序不能通过编译,理由是定义数组大小时n必须是const的,查阅书籍教科书上、询问老师都是同样的回答。
今天又一次写了这个程序,神奇的发现它是可以通过编译的。查阅了一番资料,原来是从前的vc6.0编译器版本比较旧,不支持C99标准。在C99标准中,不定长数组(柔性数组)被支持了,可以通过一个变量动态为数组分配大小。
虽然这个特性以后也许并不会用,但是还是值得记录一下,感慨一下从前学习编程的恶劣环境。教科书、老师甚至连编译器也是不靠谱的,自己也连标准也分不清就在闷头学习。感觉编程路上规划好一条正确的学习路线实在是重中之重。

猜你喜欢

转载自blog.csdn.net/MoonWisher_liang/article/details/110265300