C++指针地址问题

use*_*858 -5 c++ pointers memory-address

int *i = new int;
cout << &i << endl << i;
delete i;
i = 0;
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

0031FB2B

0057C200

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

MrZ*_*bra 5

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

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