c++ - 在 C++ 中获取类对象的地址?

标签 c++ memory-address

假设我有一个如下所示的 C++ 类:

class Point {
// implementing some operations
}

然后:

Point p1;
Point p2 = p1;

如果我想知道p2的地址,那么我可以使用&p2 .但是我怎样才能得到 p2 存储的地址呢?因为 p2 不是指针,所以我不能只使用 cout << p2;

最佳答案

以下内容有什么问题:

cout << &p2;

如您所说,p2 不是指针。从概念上讲,它是存储在内存中某处的数据 block 。 &p2 是这个 block 的地址。当你这样做时:

Point p2 = p1;

...该数据被复制到“标记为”p1 的 block 中。

But how can I get the address that p2 stores?

除非您向Point 数据结构添加指针成员,否则它不会存储地址。如您所说,它不是指针。

附言hex流运算符也可能有用:

cout << hex << &p2 << endl;

关于c++ - 在 C++ 中获取类对象的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6012190/

相关文章:

c++ - 从 Maven 访问自定义(非 Java) Artifact 存储库

c++ - 这种情况会导致什么结果?它是定义的还是依赖于编译器的?

c++ - 为什么我使用 XCode 的 llvm 与来自 MacPorts 的 clang++ 获得更快的二进制文件?

c++ - 动态分配的 int 数组的共享指针触发了断点

c++ - '*(<type> *) &x' 和 'x' 有什么区别?

c - 如何将地址 int 转换为 char * 字符串

c++ - 这是 C++ 中的不合格查找吗?

C++ 双地址运算符? (&&)

c - 内存地址增加四

c - 返回 C 中静态常量变量的地址