请参阅以下代码:
#include <iostream>
class Boy {
char name[10];
public:
void show() {
*name = 0;
std::cout << "\n" << &name[0];
}
};
int main() {
Boy b;
b.show();
}
这里,我们为什么不看到名称[0]的地址。我也试过name
,它本身就是地址。我仍然看不到地址,它返回空白屏幕。
答案 0 :(得分:3)
这是因为你对char*
使用operator<<
重载,它将指针视为指向c-string的指针。将指针投射到void*
以将其打印出来。
std::cout << "\n" << static_cast<void*>(&name[0]);