为什么12位未初始化的int变量总是为0xff0?

Foo*_*Bee 1 c gcc

当我尝试向朋友解释一些简单的代码时,会发生一些奇怪的事情:

#include <stdio.h>
int main() 
{
    int x;
    printf("%x\n",x);
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了数百万次,x的最后12位总是变成0xff0.我已经解除了代码,但仍然无法弄清楚这里发生了什么

我的操作系统是ubuntu10.10,编译器是gcc4.7.2

GMa*_*ckG 6

读取未初始化的变量是未定义的行为.所以你什么都不保证.

这包括始终为零,始终保持平衡,始终不同,并重新格式化您的硬盘驱动器.

  • 一个未初始化的变量曾与我的女朋友一起跑了.真实的故事. (10认同)