数组不初始化结果为多少,是不是一定是0

如题所述

不是0,定义数组之后,会分配一个连续的内存空间,如果不初始化,数组的值为随意的垃圾值。因为这部分连续的内存空间是任意分配的,里面的值取决于之前电脑本身用这部分内存时产生的值,一般都是垃圾值。如果你想看看值到底是多少,很简单。
先定义一个数组,然后不初始化,然后直接输出数组的值,就可以知道了。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-28
不是。
数组定义的时候,只是划分出一片区域,冠以数组命名来存储需要存储的代码,但定义数组的时候,并不改变现在已经存储在这片区域中的代码,亦就是说,已经存储在这片存储取悦中的代码可能是0,也可能是其它任意字符,具有不确定性。本回答被提问者和网友采纳
第2个回答  2012-07-30
不是的,,不初始化的数值,是随机的,但是这样说也不对,因为不是随机的,,只是那个空间原来有什么值就是什么值了,所以虽然不初始化的值是固定的,但是也是不确定的,而且每个地址(比如未初始化的a[1],a[3])的也可能不一样
第3个回答  2012-07-30
看你的编译器了 一般,在外部定义(意思是在所有函数外定义)的数组或者变量等等,如果不给出显示的初始化,则编译器会自动将其初始化为0
如果不是在外部定义的,是局部性质的,则编译器不会对其进行初始化,他里面的值就是随机的,是乱码
第4个回答  2012-07-30
不是。

有些编译器会初始化为0,但多数编译器不会。
在未初始化时使用变量,有些编译器会有警告

数组不初始化结果为多少,是不是一定是0
不是0,定义数组之后,会分配一个连续的内存空间,如果不初始化,数组的值为随意的垃圾值。因为这部分连续的内存空间是任意分配的,里面的值取决于之前电脑本身用这部分内存时产生的值,一般都是垃圾值。如果你想看看值到底是多少,很简单。先定义一个数组,然后不初始化,然后直接输出数组的值,就可以...

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

未初始化数组,打印出来的全是零
如果只对数组的一部分进行初始化,则编译器将把其他元素设置为0。因此,当只将第一个元素初始化为0时,编译器会自动将其他元素设为0 (就像前一句说的那样)。2.int arr[31]={};3.用memset函数在程序开始时初始化数组。比如:int arr[1024];memset(arr, 0, 1024); \/\/清零 ...

C语言中数组在没有初始化的情况下,各元素的值会怎样?
没初始化是Null,没任何值!而且要看你是什么数组,长度也没定义的话肯定是空的!长度定义的就有你定义的那么多个Null!

字符数组是不是只要进行了初始化,未初始化部分,自动初始化为0。
这个不一定的,要看你这块内存是怎么分配的。如果是全局变量的话,这块内存是程序装入内存后的.bss段,一般操作系统的程序装载器会对没有初始化的符号进行清0操作。如果是临时变量,是在分配在程序栈上的,程序一般不会对栈进行清0操作,所以可能会是你无法预知垃圾数据。为什么不清0,因为没必要,因为...

c语言,当数组某些元素未被赋值时其值为多少?
数组未初始化有两种情况:1,未初始化,其值有两种可能:一种是全局数组,被编译器初始化为0。一种是局部数组,为随机数。2, 已初始化,局部数组和全局数组,已初始化,未赋值的数组都会被赋值为0。

...有初始化时,int数组的默认值为什么是null而不是0?
int[]数组不是基本类型,是对象,所以默认为null java里面所有对象没有new得时候,都为null,基本类型int才是默认为0

c语言定义一维数组,元素未初始化,那数组元素默认值是什么
一维数组元素的初始化默认值与所定义的数组类型有关,不同的数组未初始化的默认值也不同。常见的几种数组的默认值:整型:0 浮点型:0.0 char型:0或'\' (而非'0')boolean型:false 运用数据类型:null

c++ 局部数组没有初始化 结果会是怎样
这个,是这么个道理,你的变量都在未知内存那块,没被使用过,所以都是一个固定的无意义的值。假如你的内存使用频繁,你的变量占用的那块内存曾经被使用过,而且又没有显式释放过。那么你的数组的值在未赋值之前,什么值都是可能有的。

不给可初始化的数组赋初值 则全部元素均为0 是什么意思?
定义数组时没有初始化, 之后也没有相应的赋值, 所以输出时是随机的

相似回答