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的地址怎么办呢?
答案 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;
适合我:)