指针的地址与指针的引用

Address of a pointer vs Reference to a pointer

本文关键字:指针 引用 地址      更新时间:2023-10-16

我写了下面的代码:

int* p = new int(7);
std::cout << p << std::endl;    //output: 0096FAB4
std::cout << &p << std::endl;    //output: 0096FA90

为什么输出不同?

c++中的每个对象都由该对象的物理位置地址表示。如果你创建了一个地址类型int *p = new int(7);所以当你调用std::cout <<p & lt; & lt;std:: endl;它将输出内存中单元格的地址,即数字7的地址所在的位置。当你调用std::cout <<和p & lt; & lt;std:: endl;因此,它将输出内存中数字7所在单元格的物理地址。

结论:

  • //输出:0096FAB4为整数7的地址的地址
  • //输出:0096FA90是整数7的物理地址

的例子:

  • 如果我们在内存中查找地址0096FAB4,我们将看到0096FA90
  • 如果我们在内存中查找地址0096FA90,我们将看到00000007