数组地址不可见

时间:2016-10-03 12:22:50

标签: c++

请参阅以下代码:

#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,它本身就是地址。我仍然看不到地址,它返回空白屏幕。

1 个答案:

答案 0 :(得分:3)

这是因为你对char*使用operator<<重载,它将指针视为指向c-string的指针。将指针投射到void*以将其打印出来。

std::cout << "\n" << static_cast<void*>(&name[0]);