为什么 -1 在 C++ 中变成 -842150451?

Why does -1 become -842150451 in C++?

本文关键字:-842150451 C++ 为什么      更新时间:2023-10-16
struct myclass {
int id;
myclass(): id(-1){};
};
myclass *a;
cout >> a->id;

以上是我长程序的演示。输出应为 -1。但我不知道为什么输出变成-842150451。

你有未定义的行为

您创建了一个myclass指针,但从不将其指向任何内容。然后你尝试取消引用悬空或狂野的指针。

试试这个来获得你期望的 -1:

myclass a;
std::cout << a.id;