C++ static型数组问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:20:33
对于非static型数组和static型数组,如果不进行初始化,其元素值各是什么?

非static不进行初始化数值时随机的,static貌似默认是0吧

static:全局变量, 函数局部变量, 类成员变量,都会是0

非static: 全局变量会是0; 函数局部变量, 类成员变量 则会是内存的原始值, 在debug模式下,vc预先把内存值刷成了0xcccccccc(vs2008)或者0xcdcdcdcd(其他版本),所以就是这些值。

非static型数组和static型数组的默认值取决于数组的数据类型,如果是int,默认值就是0,如果是string,默认值为" ",非static型数组和static型数组对于默认值应该是没有区别的。

static数组是存放在静态存储区的,所有静态存储区的数据在程序运行时都会被自动初始化为0
非static数组中的元素是未知的(随机的)

非static是乱码,static是0.因为一个栈区,前者,所以是垃圾值,后者在全局数据区,所以会是0.