基本的char指针问题

时间:2016-05-14 12:35:47

标签: pointers

实际上当我们初始化指针时:

char *p; 

我们*p表示pp的地址)的值,p表示p的地址。所以,当我想打印时:

cout << p

为什么编译器没有给我p的地址?

1 个答案:

答案 0 :(得分:0)

未初始化的指针将指向任何地方或某个随机地址。这是特定于实现/编译器的。

在你的情况下,它必须被初始化为0,即空指针或指针指向任何东西。因此,尝试在此输出中打印其值。 在这种情况下,一些智能编译器会打印(无)。

您可以通过更改:

来确认

char *p;

char *p = 0;

您必须获得相同的输出,否则不会打印任何内容。

与此相反,如果如下所述正确初始化/分配,您将获得地址(但这将是p指向的地址,对于p的打印地址,您应该打印&amp; p):

char *p, c='x';

p=&c;

Here很好地阅读相关内容。