关于数组的问题
#include <stdio.h>
#include <cstdlib>
main()
{
int n;
scanf( "%d ",&n);
printf( "%d\n ",n);
int a[n];
int i=0;
for(i=0;i <n;i++)
printf( "%d\n ",a[i]);
system( "pause ");
}
上面的程序可以正确运行,但是如果将 "int a[n]; "改为 "int a[n]={5}; "就会报错,这是为什么?请各位高手解释下.
[解决办法]
这个程序可以编过,C99里已经允许变长数组了,只是知道的和用的人不多就是了。
可以看看这个:
http://www.informit.com/guides/content.asp?g=cplusplus&seqNum=215&rl=1
gcc 3.4.3就已经可以通过编译了。
楼主用的是dev,内置gcc,所以可以编过;但vs似乎编不过。
只能说vs不支持C99了。
其实C99里很多特性都不错,我们也用到一些了,例如“Dispersed Statements and Declarations”