关于容器iterator迭代器的有关问题

关于容器iterator迭代器的问题
#include <iostream>
#include <set>

using namespace std;

int main(int argc; char* argv[])
{
int *temp = new int[4];
set<void*> Set;
Set.insert(temp);
set<void*>::iterator  ptr = Set.find(temp);
set<void*>::iterator* p   = &ptr;
delete []temp;

return 0;
}

这里p为什么会有两个值呢?
关于容器iterator迭代器的有关问题
第二个值是temp的值,第一个是什么地址呢?是ptr类的地址么?谢谢大家指点一下

------解决方案--------------------
VS调试器一般会把指针和指针指向的值打印出来
按照这个说法,那第一个值就是p本身,第二个就是 *p了
------解决方案--------------------
看看这两个个地址上是什么内容不就知道了
------解决方案--------------------
第一个是p指针值(地址),第二个是*p。
------解决方案--------------------
temp地址在 *ptr 里