为什么未初始化的变量打印出一个奇怪的负值?

far*_*oft -6 c++ variables cout

为什么未初始化的变量打印出一个奇怪的负值?

int x;
cout << x << endl;
Run Code Online (Sandbox Code Playgroud)

Set*_*gie 13

你正在做什么(读取未初始化变量的值)是未定义的行为 ; 任何事情都可能发生,从看似工作,打印随机值,崩溃,用信用卡购买披萨.

  • 如果它只能在没有信用卡的情况下给我买披萨,我会经常执行上述程序:P (4认同)
  • 是的,但是从它的UB开始,你无法预测浇头. (4认同)

小智 5

一个未初始化的变量是声明,但在使用前没有被设置为一个确定的已知值的变量.它会有一些价值,但不是可预测的价值.

  • 在形式上,它具有"不确定的价值",这意味着即使尝试阅读它也可能失败(以或多或少的方式). (2认同)