7楼说的也不全对(不过基本还是正确的)。难道没人自己做做试验吗?产生的結果用7楼说的都能解释吗?没有例外?
局部变量运行时在栈上开辟空间,如果生成的不是发行模式,也会被初始化成CC的。
也不是8字节,是按4字节为一个单位来初试化为CC,输入的再多 依旧会被栈上空间接受,
但是编译器添加了堆栈检测保护函数,通不过检测函数,会提示出错。
第2个是作为全局变量,编译时确定,位置在数据段,初试化为00,没有检测机制,而一般这个段内数据比较少,甚至可能只有这一个,所以很少会发生错误,不过没试过输入到段的最后而不留结束符00的情况。 可一旦因数据被覆盖出现问题,还是比较难排查的。
很久前学汇编时捣鼓过,现在早忘了。C的情况也差不多。
其实每个看似简单的
问题都可以探究下去,只不过绝大多数都没那个必要,只要知道不那样错误的
使用就行了。
楼主用这样的题目就很蛋疼了