c语言为什么整型变量未赋值是随机值,而二维数组未赋值是0

如题所述

1、首先题目是错误的,问题应该是“初始化”而不是“赋值”。
2、其次整型变量和数组在初始化未给值的情况下都会是随机值,而不是你说的数组就是为0.
3、最后还有特殊情况那就是如果数组在初始化的时候有给了几个值,那么其他没有给值的元素都会被编译器置为0.
比如int
a[5]
=
{1,
2};那么编译器会帮你把后面的三个元素也置为0,只有在这种情况下才是0,其他的情况都是随机值。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-05-25
c语言规定,普通数组没有赋初值,默认的数组元素值是随机数,不是0。如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0。
第2个回答  2019-06-05
数组变量为全局变量,或被部分初始化,均会出现这种情况。
C语言中,变量在没有显式初始化时,区分变量类型,有如下几种情况:
1
全局变量,
和静态局部变量,未初始化时值默认为0.无论是数组还是变量,都是如此。
2
局部变量,初始值为随机值。
3
数组类局部变量,当被部分初始化时,未被初始化部分,值默认为0。
第3个回答  2019-12-26
整型变量未赋值时系统会默认上一次的值,而二维数组需要开辟新的内存空间,初始值一定为0的
相似回答
大家正在搜