提问:不是应该是指针变量p2也指向指针变量p1所指向的变量么?
回答:不是。
p1=&a; p2=&b; p1=p2;
刚开始p1指向a的地址,p2指向b的地址
但由于p1=p2; 语句,又使得p1指向p2指向的地址(p1=p2;这是一条赋值语句,就是把p2的地址值赋给p1,但p2的地址值并没有改变,所以你提问的答案是否定的),也就是说,p1=p2; 这条语句使得p1间接的指向了b的地址。最终p1,p2都指向了b的地址,所以执行printf("%d,%d",*p1,*p2); 语句
便输出了两次b的值,也就是20,20了
p1=&a; p2=&b; p1指向a地址,p2指向b地址,
p1=p2;p2指向的地址(即b的地址)赋值给p1,此时,p1和p2都指向b的地址,当然都是20了
就应该是20,20的,把P2指的内容赋给P1指的内容