##全局(静态)和局部数组初始化
全局和静态数组根据规范要求初始化为0,
但是局部数组如果不显示初始化,它的值不确定。 但是如果初始化了最开始的几个数组元素,那么剩下的所有元素编译器将初始化为0.
e, f, g,有初始化,则剩下的元素默认初始化为0;h无初始化, 所有值均不确定。
##初始化字符数组
初始化字符数组有两种方法,
一种是:
char array[10]={“hello”};
另一种是:
char array[10]={‘h’,‘e’,‘l’,‘l’,’\0’};
第一种方法用途较广,初始化时,系统自动在数组没有填值的位置用,’\0’补上。另外, 这种方法中的花括号可以省略,即能表示成:
char array[10]=“hello”;
第二种方法一次一个元素地初始化数组,如同初始化整型数组。这种方法通常用于输入不容易在键盘上生成的那些不可见字符。
例如,下面的代码中初始化值为若干制表符:
char chArray[5]={’\t’,’\t’,’\t’,’\t’,’\0’);
这里不要忘记为最后的,’\0’分配空间。如果要初始化一个字符串"hello",那为它定义的数组至少有6个数组元素。
例如,下面的代码给数组初始化,但会引起不可预料的错误:
char array[5]=“hello”;
该代码不会引起编译错误,但由于改写了数组空间以外的内存单元,所以是危险的。