本文主要是介绍栈中数组初始化的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本处讨论的是栈中定义的数组,全局或者static数组和本文无关。
函数中定义好一个数组后,数组里面的内容到底是自动被初始化为0呢?
还是一个不确定的数值?这个需要具体分析。
在函数中定义的数组是在栈中的,栈中定义的数组假如未初始化则,数组
的内容是不确定。但是如果初始化过了,那数组中的元素要不就是0,要不
就是初始化好的数值。
例如:
char a[3]
char b[3] = {1}
char c[3] = {1,2,3}
数组a未初始化则a中的元素值为不确定的值
数组b初始化了但是未将数组中的所有数组初始化,所以b[1] = 1, b[2] =0,
b[3] = 0。注意,此时数组中的剩余元素会被自动初始化为0,数组元素数值
是可以确定的,而且利用这一特性可以用语句b[100] = {0};将数组中100个元
素全部初始化为0!!!
数组c已将数组中所有的元素都初始化了,那数值当然可以确定了。
此外假如用字符串初始化也是同样的结果。
VC++6.0验证截图如下
代码中的注视表示变量当时运行时候的内存地址,可证实前面的描述!
这篇关于栈中数组初始化的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!