一个简单的小程序解决方法

一个简单的小程序
大家看看下面两个程序哪个是对的,个人感觉应该第一个,怎么运行出来第二个是对的,输入应该是按地址输啊,怎么会这样?

void   main()                                                  
{
    int   *p;
    cin> > p;
    cout < <*p < <endl;        
}


void   main()
{
    int   *p;
    cin> > *p;
    cout < <*p < <endl;        
}

------解决方案--------------------
p是指针
并不代表具体存储位置不能直接输入
*p是指向的变量地址