如果我声明一个指针,class 的指针成员会发生什么情况?

What happen with the pointer members of a class if I declare a pointer?

我写了下面的代码:

#include <iostream>

using namespace std;

class Node {
public:
    int id;
    Node* n;
};

int main()
{
    Node* node;
    cout << node->n;
    return 0;
}

在这种情况下,我声明了一个指针(它未初始化)但在输出中我获得了一个由 "n" 给出的地址。如果我不初始化指针,为什么代码显示给我一个引用?

它是一个野指针。 VC 编译器将值 0xcdcdcdcd 分配给这些指针,该值可能指向 RAM 中的最后一个内存(不确定)。您不应该取消引用这种指针,因为编译器会抛出违规内存 access.If 您不想将类型 Node 的对象分配给指针,强烈建议您将指针分配给NULL value.In 在这种情况下,如果指针指向真实对象或未通过检查他的地址分配,您将始终能够检查代码。