第一组代码:
#include
int main()
{
int i,a[10];
for(i=0;i<10;i++)
printf("第%d个数:%d\n",i+1,a[i]);
return 0
}
书上说这个不行,需要将a[10]改成a[10]={*******},但下面一段代码行但我觉得与第一组是一样的
第二组代码:
#include
int main()
{
int i,a[10];
for(i=0;i<10;i++)
a[i]=i+1;
for(i=0;i<15;i++)
printf("第%d个数:%d\n",i+1,a[i]);
return 0
}
为什么第二种代码中的a[10]不改成a[10]={*****}
第二组代码对a数组进行了初始化,第一组未初始化就进行了输出,容易输出乱码,一般都用花括号进行初始化,如果希望全部初始化为0可以写a[10] = { 0 },这代表所有元素都初始化为0
第一组是因为未初始化出错,第二组是先定义,再赋初值,在printf之前完成了初始化。初始化有两种方式:定义时赋初值;先定义,后赋初值。
a[i]=i+1; 因为第二组有这句,所以对a数组赋值了