int a[ ]={0};

如题,这样初始化数组究竟可不可以。

下面看一段代码:

#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也没有问题。

猜你喜欢

转载自blog.csdn.net/weixin_41556394/article/details/81141649