int *p = (int *p)a;这个不是把a这个变量强制转换成指针变量了吗。然后赋给了p吗那为什么p和a的地址不一样呢?
输出的p就是a=0强制转换的,并不是p的地址,所以是0000000000000,&a是a的地址,所以会不一样