求分析,ABCD不理解

设有变量定义如下:
int m=6, n, *p1=&m, *p2=&n;
则下列不正确的表达式语句是( )
A、
*p2=*p1;

B、
p2=&p1;

C、
n=*p1;

D、
p2=p1;

正确答案: B


p1和p2都是整型指针,可以相互赋值(D),*p1和*p2都是取出int的值,所以相互赋值(A)和赋值给一个int都是可以的(C),&表示取地址,整型指针就是存储整型的地址,p1=&n,如果p1=&p2,那p1类型要是整型指针的指针才行,所以B是错的