为什么使用 "++value"会导致 -842150449?

Why is using "++value" resulting in -842150449?

本文关键字:-842150449 ++value 为什么      更新时间:2023-10-16

.h文件中使用此选项:

int value;

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

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

结果是:

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

(..等等(

但为什么呢?这个数字毫无意义。

int value;

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

但为什么?这个数字毫无意义。

可能是因为程序的行为未定义。

Value从未初始化过,所以您试图将1添加到"不存在"的东西中,这样您就可以从刚刚分配到那里的东西中自动获得这些垃圾值。尝试:

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

在.cpp文件中