指针的地址与指针的引用

时间:2016-11-17 19:22:02

标签: c++

我写了这段代码:

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

为什么输出不同?

1 个答案:

答案 0 :(得分:-1)

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

总结:

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

示例:

  • 如果我们通过地址0096FAB4查看内存,我们将看到0096FA90
  • 如果我们通过地址0096FA90查看内存,我们将看到00000007