为什么指针返回值,而不是地址?

时间:2015-03-11 10:32:19

标签: c++ pointers

为什么在我的代码中,我看到存储在地址中的,而不是地址

char *fortunes[] =
    {
        "1",
        "2",
        "3",
        "4"
    };

    cout << *fortunes[2];   // result 3
    cout << fortunes[2];    // result 3, but I expected to see adress

1 个答案:

答案 0 :(得分:4)

std::ostream& operator<<有一个重载,它接受const char*并将其解释为以空字符结尾的字符串,打印出字符直到找到空终止符。如果要打印指针的值(它所包含的地址),可以将其强制转换为void*

例如

cout << reinterpret_cast<const void*>(fortunes[2]) << endl;