为什么在我的代码中,我看到存储在地址中的值,而不是地址?
char *fortunes[] =
{
"1",
"2",
"3",
"4"
};
cout << *fortunes[2]; // result 3
cout << fortunes[2]; // result 3, but I expected to see adress
答案 0 :(得分:4)
std::ostream& operator<<
有一个重载,它接受const char*
并将其解释为以空字符结尾的字符串,打印出字符直到找到空终止符。如果要打印指针的值(它所包含的地址),可以将其强制转换为void*
。
例如
cout << reinterpret_cast<const void*>(fortunes[2]) << endl;