ipk*_*iss 1 c++ memory-address
假设我有一个C++类,如下所示:
class Point {
// implementing some operations
}
Run Code Online (Sandbox Code Playgroud)
然后:
Point p1;
Point p2 = p1;
Run Code Online (Sandbox Code Playgroud)
如果我想知道p2的地址,那么我可以使用&p2.但是如何获得p2存储的地址?因为p2不是指针,所以我不能只使用cout << p2;
sje*_*397 13
以下是什么问题:
cout << &p2;
Run Code Online (Sandbox Code Playgroud)
如你所说,p2不是指针.从概念上讲,它是存储在内存中的数据块.&p2是这个块的地址.当你这样做时:
Point p2 = p1;
Run Code Online (Sandbox Code Playgroud)
...数据被复制到'标记'块p1.
但是如何获得p2存储的地址?
除非您将指针成员添加到Point数据结构,否则它不会存储地址.正如你所说,它不是一个指针.
PS 十六进制流运算符也可能有用:
cout << hex << &p2 << endl;
Run Code Online (Sandbox Code Playgroud)