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

时间:2012-01-11 15:24:40

标签: c++ arrays element

我想把一个元素地址输出到控制台但是我遇到了麻烦。

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

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

感谢

2 个答案:

答案 0 :(得分:9)

您需要转换为void *才能使用iostream进行打印,并且您需要一个安全的地址运算符,它不会被重载的& - 运算符弄糊涂。换句话说:

std::cout << static_cast<void*>(std::addressof(text[0])) << std::endl;

您需要<memory><iostream>,以及最近的编译器。


更新:请注意,此代码为您提供操作数的静态地址。如果要传递多态对象的基本引用,则应该使用dynamic_cast<void*>(x),但这对于多态对象(即具有虚函数的对象)只能 ,它会为您提供实际动态对象的地址。

答案 1 :(得分:0)

就这样做:

printf("%p",text);

您需要stdio.h才能使用printf