请看下面一段代码:
#include<stdio.h>
int main()
{
int a[10]={2},n,i;
char b[10]={'0'},ch;
a[0]=8;
b[0]='2';
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("/n");
for(i=0;i<10;i++)
printf("%c",b[i]);
printf("/n");
return 0;
}
结果会是什么呢??会是8222222222和2000000000吗?...............而其实结果并非如此
正确结果会是8000000000和2 (9个空格)
这时候我们想,如果在初始化过多数组中间赋值呢?
改成
#include<stdio.h>
int main()
{
int a[10]={2},n,i;
char b[10]={'0'},ch;
a[1]=8;
b[1]='2';
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("/n");
for(i=0;i<10;i++)
printf("%c",b[i]);
printf("/n");
return 0;
}
结果又是什么呢?
正确的是:2800000000和02 (8空格)
由此得到一个结论:
也就是说一个数组经过初始化之后,如果在某个位置i处赋值,那么i位置之后的初始化初值将不复存在!!