如何获取数组元素的地址?

nul*_*oid 2 c++ arrays element

我想把一个元素地址放到控制台,但我遇到了麻烦.

cout << &text[0] << endl;

它似乎是输出它的vaule,我在这里做错了什么?

谢谢

Ker*_* SB 9

您需要转换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),但这适用于多态对象(即具有虚函数的对象),并且它为您提供实际动态对象的地址.