实际上当我们初始化指针时:
char *p;
我们*p
表示p
(p
的地址)的值,p
表示p
的地址。所以,当我想打印时:
cout << p
为什么编译器没有给我p
的地址?
答案 0 :(得分:0)
未初始化的指针将指向任何地方或某个随机地址。这是特定于实现/编译器的。
在你的情况下,它必须被初始化为0,即空指针或指针指向任何东西。因此,尝试在此输出中打印其值。 在这种情况下,一些智能编译器会打印(无)。
您可以通过更改:
来确认 char *p;
到
char *p = 0;
您必须获得相同的输出,否则不会打印任何内容。
与此相反,如果如下所述正确初始化/分配,您将获得地址(但这将是p指向的地址,对于p的打印地址,您应该打印&amp; p):
char *p, c='x';
p=&c;
Here很好地阅读相关内容。