nul*_*oid 2 c++ arrays element
我想把一个元素地址放到控制台,但我遇到了麻烦.
cout << &text[0] << endl;
它似乎是输出它的vaule,我在这里做错了什么?
谢谢
您需要转换void *为使用iostream进行打印,并且您需要一个安全的地址操作符,不会被重载的操作符弄糊涂&.换一种说法:
std::cout << static_cast<void*>(std::addressof(text[0])) << std::endl;
Run Code Online (Sandbox Code Playgroud)
你需要<memory>和<iostream>最近的编译器.
更新:请注意,此代码为您提供操作数的静态地址.如果要传递多态对象的基本引用,则应该使用dynamic_cast<void*>(x),但这仅适用于多态对象(即具有虚函数的对象),并且它为您提供实际动态对象的地址.