C++ 为什么这个代码是打印字符串而不是打印地址?

C++ 为什么这个代码是打印字符串而不是打印地址?,c++,C++,在这段代码中,coutstd::cout对const char*有一个特殊的重载,它以char数组的形式输出内存,从传递到下一个NUL终止符的指针开始(您的工作是确保有适当的内存可用于此目的) 如果要关闭此行为并输出指针地址,请使用强制转换: std::cout << (const void*)b << endl; std::coutstd::cout对const char*有一个特殊的重载,它以char数组的形式输出内存,从传递到下一个NUL终止符的指针开始(您的工作

在这段代码中,
cout
std::cout
const char*
有一个特殊的重载,它以
char
数组的形式输出内存,从传递到下一个NUL终止符的指针开始(您的工作是确保有适当的内存可用于此目的)

如果要关闭此行为并输出指针地址,请使用强制转换:

std::cout << (const void*)b << endl;

std::cout
std::cout
const char*
有一个特殊的重载,它以
char
数组的形式输出内存,从传递到下一个NUL终止符的指针开始(您的工作是确保有适当的内存可用于该操作)

如果要关闭此行为并输出指针地址,请使用强制转换:

std::cout << (const void*)b << endl;

<代码>:我想一个静态的转换会更像C++。@ StAdvuru:我更喜欢我的方式,因为它整理出任何<代码> COSTOSTCAST 。每个C++程序员都应该知道C++风格的C++如何运行。据说这被认为是“安全的”。但我不会在上面打赌。我想静态的投会更像C++。@ StAdvuru:我喜欢我的方式,因为它整理出任何<代码>康斯坦施卡特< /代码>。每个C++程序员都应该知道C++风格的C++如何运行。据说这被认为是“安全的”。但我不敢打赌。