int *p=&a;这句话是对的,他的意义是声明整形指针p,并且将p初始化。等同于:int *p; p = &a;这两步操作,而赋值等同于初始化,也就需要p = &a;
初始化的时候其实是(int *) p = &a这里 int * 在一起代表变量类型
初始化时,是相当于给p一个地址,赋值时, p 是地址 *p 是数值
赋值的时候是 p = &a