繁体   English   中英

C ++标量变量设置为零值

[英]C++ scalar variable set to zero value

我正在使用CodeBlocks 13.12,g ++编译器,并且我的局部变量都被初始化为0。

我想知道是否有一种方法可以避免编译器将所有变量设置为0。 我想在其中具有垃圾价值。

例如:

#include <iostream>
using namespace std;

int main(){
  int a, b;
  cout << a << " " << b;
  return 0;
}

输出为:0 0

我不希望a和b为零。 它们应包含垃圾值。

提前致谢

在进行优化或不进行优化时,编译器在这方面的行为有所不同。 我猜您在构建时没有优化,这就是为什么编译器零初始化变量的原因。

但是,当这样说时; 不要四处读取未初始化的变量。 那是不确定的行为。 尽管您可能常常只是获得一个“垃圾”值,但是当编译器发现您的程序未定义时,实际上可以自由生成所需的任何代码。 这包括根本不发出任何代码,发出您期望的代码以及重写程序的其他部分。 不要调用未定义的行为。

如果您想要一个随机值,请使用<random>工具-http://en.cppreference.com/w/cpp/numeric/random

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM