C语言中的数组,如果只对其中一个元素进行初始化,其余元素会怎么样?

比如说一个C语言的数组,我只把其中某一个元素初始化为0,那么该数组中的其余元素是自动为0,还是存储的随机垃圾值?

若 int a[5]={0}; 则意味着a数组的五个元素都为0,即0 0 0 0 0 ;
若 int a[5]={1}; 则意味着a数组的第一个元素值为1,其余元素值为0,即1 0 0 0 0;
若 int a[5]={1,2}; 则意味着a数组的第一个元素为1,第二个元素为2,其余为0,即1 2 0 0 0;
若 int a[5]={1,0,2}; 则意味着a内存储的是1 0 2 0 0;
若 int a[5]; 则意味着a内存储的是随机垃圾值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-28
char a[100]={0}; //全部初始化为0,
char a[100]={0,}; //作全局变量和自动变量会不一样吧, 是否只初始化了第一个元素? 我还没试验过,你不防自己试试
char a[100];a[0]=0; //其它元素应当是随机垃圾值的本回答被提问者采纳
第2个回答  2012-10-28
如果只初始化一个元素,数组中的其他数都是无效的垃圾。所以为了程序运行有效、安全,在使用数组前应该先初始化。
第3个回答  2012-10-28
应该是先分配内存给你,你如果不对其余的进行赋值,编译不会通过,因为分配的内存空间里有什么,谁也不知道,推荐你学一下汇编就会很明白了。
相似回答