今天我刚刚在班上做了一次考试---读取C代码和输入,并且所需的答案是如果程序实际运行将在屏幕上显示。声明a[4][4]为全局变量的问题之一,在该程序的某个点,它试图访问a[27][27],因此我回答了诸如“ 访问其边界之外的数组是未定义的行为 ”之类的问题,但是老师说a[27][27]它将具有的值0。
之后,我尝试了一些代码来检查“所有未初始化的golbal变量都设置为0”是否正确。好吧,这似乎是真的。
所以现在我的问题是:
似乎已清除并保留了一些额外的内存以供代码运行。保留多少内存?为什么编译器保留的内存比应有的多,它的用途是什么?
将a[27][27]是0所有环境?
编辑:
在该代码中,a[4][4]是唯一声明的全局变量,并且中还有更多局部变量main()。
我在DevC ++中再次尝试了该代码。他们都是0。但这在VSE中是不正确的,0正如Vyktor所指出的那样,在VSE中,大多数值只是一个随机值。
梵蒂冈之花
慕丝7291255
陪伴而非守候
相关分类