数组中没有被赋值的元素并不是不占用内存,但这个值不确定?为什么?求高人解答

如题所述

数组占用的空间,在定义数组的时候就确定了,如果你没有给他赋值,那么他的值就暂时不确定,一般系统会自动赋值的,比如int型数组,一般赋0,char型数组,一般赋'\0'
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-19
对数组赋值的原因:定义一个数组时,数组获取内存中的一块区域,这个区域可能以前被用,内存中的值是不确定的,所以数组的值也是不确定的。

对数组赋值的目的:让数组的值是我们需要的确定的值。

问题一:没有必要对数组初始化,因为gets已经初始化过了。只要值是我们想要的就行。

问题二:编译器要求的

char a[10]= "i love you"; // 正确
char a[10];
a[10]="i love you"; // 错误,编译器规定的
strcpy(a,"i love you"); // 正确,一个字符一个字符赋值的。
char *a;
a="i love you"; // 正确,但是不能改变"i love you"的值
// 字符串是常量,放在常量区域,只能读,不能修改,a是指向常量区域的首地址
第2个回答  2011-09-19
数组定义了就会被系统分配存储空间,但没赋值的话,其内部值是分配的空间原有的内容,不是用户需要的数据,属于无效数据,所以不确定
第3个回答  2011-09-19
数组是一段连续的内存,创建是确定了大小(获得了内存)、
你不初始化数组当然不确定了
实际应用中需要定义时初始化
相似回答