之所以上面的程序输出“烫”这么一个奇怪的字,是因为main函数调用时,在栈区开辟的空间的其中每一个字节都被初始化为0xCC。
而0xCC是怎么来的呢?
画红框里的代码就是实现函数空间的初始化的,第三行代码的意思就是:
将所有开辟的空间都初始化为0CCCCCCCCh,也就是0xCC。(详见函数栈帧的创建和销毁)
接下来我们回归正题。
arr数组是一个未初始化的数组,恰好在main函数的栈帧空间上创建的,0xCCCC(两个连续排列的0xCC)的汉字编码就是“烫”,所以0xCCCC被当作文本就是“烫”。