打印char数组的地址

时间:2012-07-18 08:52:06

标签: c++ char cout ostream

int *i = new int(1);
cout << i << endl; 

将打印整数的地址。

    char *c="cstring";
    cout << c << endl;
    cout << &(*c) << endl;

两者都会打印“cstring”。我想这种行为可以简单地通过IOstream库中ostream& operator<< (ostream& out, const char* s );的实现来解释。

但是如果你真的想要打印数据c的地址怎么办呢?

3 个答案:

答案 0 :(得分:7)

cout << reinterpret_cast<void*>(c) << endl;

或只是

cout << (void*)c << endl;

答案 1 :(得分:1)

尝试将其转换为const void*

cout << static_cast<const void*>(c) << endl;

答案 2 :(得分:0)

如何

cout << &c << endl;

适合我:)