我写了这段代码:
int* p = new int(7);
std::cout << p << std::endl; //output: 0096FAB4
std::cout << &p << std::endl; //output: 0096FA90
为什么输出不同?
答案 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位于其中。
总结:
示例: