我想把一个元素地址输出到控制台但是我遇到了麻烦。
cout << &text[0] << endl;
它似乎是输出它的vaule,我在这里做错了什么?
感谢
答案 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