小知识:烫烫烫...是怎么来的

小知识:烫烫烫...是怎么来的_第1张图片

之所以上面的程序输出“烫”这么一个奇怪的字,是因为main函数调用时,在栈区开辟的空间的其中每一个字节都被初始化为0xCC。

而0xCC是怎么来的呢?

小知识:烫烫烫...是怎么来的_第2张图片

画红框里的代码就是实现函数空间的初始化的,第三行代码的意思就是:

将所有开辟的空间都初始化为0CCCCCCCCh,也就是0xCC。(详见函数栈帧的创建和销毁)

接下来我们回归正题。

arr数组是一个未初始化的数组,恰好在main函数的栈帧空间上创建的,0xCCCC(两个连续排列的0xCC)的汉字编码就是“烫”,所以0xCCCC被当作文本就是“烫”。

 

你可能感兴趣的:(c语言)