c语言,当数组某些元素未被赋值时其值为多少?

这样编译可以通过吗?如果可以未被赋值的元素的值为多少?

数组未初始化有两种情况:

1,未初始化,其值有两种可能:一种是全局数组,被编译器初始化为0。一种是局部数组,为随机数

2, 已初始化,局部数组和全局数组,已初始化,未赋值的数组都会被赋值为0。

扩展资料:

数组:是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。

用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。  这些无序排列的同类数据元素的集合称为数组。

声明固定大小的数组:

有三种方法声明固定大小的数组,用哪一种方法取决于数组应有的有效范围:

1,建立公用数组,在模块的声明段用 Public语句声明数组。

2,建立模块级数组,在模块的声明段用 Private语句声明数组。

3,建立局部数组,在过程中用 Private语句声明数组。

参考资料来源:百度百科-数组



温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-07

1、未初始化,同时数组中的某些元素未被赋值时,其值有两种可能,一种是全局数组,被编译器初始化为0,一种是局部数组,为随机数。在vc6.0的debug版程序中一般是0xcc的值。这个值实际上是int 3断点机器码。

2、已初始化,不管是局部数组还是全局数组,编译器都会将其未被赋值的元素初始化为0。

#include <stdio.h>
 
int a[2]; //此时编译器将a[0] a[1]初始化为0
int main()
{
a[0] = 1;  //a[1]的值为0

int b[2];
b[0]= 1; //b[1]未被赋值,其值为随机值。

int c[2] = {1}; //初始化,c[1] = 0

printf("a[0]=%d\ta[1]=%d\n", a[0], a[1]);
printf("b[0]=%d\tb[1]=%x\n", b[0], b[1]);
printf("c[0]=%d\tc[1]=%d\n", c[0], c[1]);
return 0;
}

 

第2个回答  2013-07-19
可以,值不能确定,随机器来的,乱的
第3个回答  2013-07-19
这个元素的内容是它所对应的内存所保留的值,是随机的。
第4个回答  2013-07-19
全局变量是0局部变量是随机值
相似回答