为什么使用“ ++ value”生成-842150449?

时间:2019-11-10 19:12:58

标签: c++

.h文件中使用它:

int value;

这在.cpp文件中作为循环:

std::cout << ++value << endl;

结果是这样的:

-842150449
-842150448
-842150447
-842150446
-842150445
-842150444

(..依此类推)

但是为什么呢?这个数字绝对没有道理。

2 个答案:

答案 0 :(得分:4)

int value;

这是默认初始化的语法。默认的初始化整数具有不确定的值(除非它具有静态存储,在这种情况下,它为零初始化)。读取不确定值的行为是不确定的。

  

但是为什么呢?这个数字绝对没有道理。

大概是因为程序的行为是不确定的。

答案 1 :(得分:2)

值从未被初始化,因此您尝试将1添加到“不存在”的对象中,以便从刚分配给它们的值中获取这些垃圾值。试试:

value = 1;
std::cout << ++value << std::endl;

.cpp文件中的