C ++指针地址问题

时间:2014-05-02 19:12:34

标签: c++ pointers memory-address

int *i = new int;
cout << &i << endl << i;
delete i;
i = 0;

我得到了这个输出:

0031FB2B

0057C200

为什么有2个不同的地址?不是&amp;引用动态指针的地址和i本身指针的地址,它应该是相同的地址?

1 个答案:

答案 0 :(得分:5)

&i是指针的地址。这是存储new返回的值的位置。 i是指针本身的值,这是new返回的值。

只是为了完整性,* i是指向的整数的值,此时此值是未初始化的,但这是您实际数据的去向。