2012-07-18 111 views
3
int *i = new int(1); 
cout << i << endl; 

將打印整數的地址。字符數組的打印地址

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

都將打印 「:字符串」。我想這種行爲可以簡單地通過IOstream庫中的ostream& operator<< (ostream& out, const char* s);的實現來解釋。

但是如果你真的想打印數據c的地址該怎麼辦?

回答

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

或只是

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

嘗試鑄造它作爲一個const void*

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

如何只

cout << &c << endl; 

爲我工作:)

+2

不,它不。這會給你指針的地址。而不是這個指針指向的地址。 – 2012-07-18 11:48:29