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局部变量是随机值

c语言,当数组某些元素未被赋值时其值为多少?
2, 已初始化,局部数组和全局数组,已初始化,未赋值的数组都会被赋值为0。

C语言字符数组不赋初值是默认为'\\0'还是随机值
普通数组没有赋初值,默认的数组元素值是随机数,不是0。如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0。例子:includeint main(void){ int m = 0;static int n;int a = 5, b = 6, c = ...

c语言数组初始化未赋值则默认是任意还是0
如果赋值了一项其余就是0,如果是int a[10]={1}其余各项就是0;如果只有int a[10]那么就是随机数

数组变量在未赋值前各个元素的初值是
如果这个数组是全局变量,则各个元素初始化为0,如果是局部变量,则未初始化,是内存中残留的无意义的数。数组要占用内存空间,只有在声明了数组元素的类型和个数之后,才能为该数组分配合适的内存,这种声明就是数组的定义。对一维数组来说,其定义的一般形式为:<类型标识符><数组名>[<整型常量表达式>...

关于C语言数组的选择题
数组如果没有初始化,也没有补赋值,则每个元素的值是未知的(通常情况下,编译器会给它们一个默认值,具体是多少,视编译器而定)给数组初始化时,如果只指定了前几个元素的值,那么其余的元素会采用“值初始化”给它们赋值,内置类型都默认为0值 ...

c语言数组的赋值
C语言对数组的初始化赋值还有以下几点规定:1) 可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只 给前面部分元素赋值。例如:int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。2) 只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部...

c语言定义字符数组,为什么未赋值的元素变成a输出?
C语言里面的栈区存放的变量(局部变量,函数的形参)是不会自动清零,所以在内存a[4]上,是什么就是什么,你的内存当时刚好是个'a'。会对内存清零的内存块是BSS段,既未初始化的全局变量。

在c语言中没有对一个变量赋值它的值是否自动赋0
全局变量包括静态全局变量和非静态全局变量,在没有初始化值时,其值自动为0,即定义在所有函数外,不归属于任何一个函数的,在没有初始化值时,自动为0;静态全局变量当定义在函数内的全局变量,有static标记时,默认初始化为0值;非静态全局变量没有默认初始值,C语言规定初始化值为随机值,但具体的...

C语言数组里面没有定义的量默认是0吗
数组是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。而与它相对立的概念是非线性表,比如二叉树、堆、图等。之所以叫非线性,是...

c语言数组问题
答:也是乱码。问三:比如一维数组中的数据是2234456667,789,找出其中不同的数23456789,覆盖给原数组,那么原数组下标为8到之后后的值还存不存在?答:没太看明白你想说什么。这就要看看你把新数据(元素)存放在哪儿了,已经被新覆盖的元素比如前8个元素,其旧值已经不存在了,只要没有覆盖的元素...

相似回答