如题,这样初始化数组究竟可不可以。
下面看一段代码:
#include <stdio.h>
int main()
{
int a[]={0};
int i;
for(i=0;i<10;i++)
{
a[i]=i;
printf("a[%d]=%d\t",i,a[i]);
}
int b[]={0};
putchar('\n');
for(i=0;i<10;i++)
{
b[i]=a[9-i];
printf("b[%d]=%d\t",i,b[i]);
}
return 0;
}
其功能是实现整型数组内容的倒置,
可是最后的结果是这样的
不难看出是个错误的程序。
可如果我只是单纯地正向赋值而不是倒序,那么结果是这样的:
赋值似乎是没有什么问题,但是返回值告诉我们这个程序还是有一点问题的。那么究竟是什么问题呢?
如果我将int a[ ]={0};
改成int a[ 1000 ]={0};或者int a[ 1000 ];
出来的结果是正确的,返回值是0也没有问题。