C++指向char的问题

Loa*_*ati 1 c++ pointers

char *ps;
ps = &anotherChar;
cout << ps;
Run Code Online (Sandbox Code Playgroud)

为什么这会显示anotherChar的值而不仅仅是地址?

cra*_*str 13

有一个operator<<重载将char *其解释为要输出的字符串.如果你想要一个地址,你可以转换为void*.


Jar*_*Par 5

原因是char*C/C++中的a是双重目的类型.它既可以是指向单个字符的指针,也可以是C样式字符串.cout函数选择将其视为C样式字符串,因此将打印值而不是地址.

这也是您的应用程序的潜在问题.C样式字符串以null终止符值结尾.因此,它有可能读取非法内存,因为它没有正确初始化.