让人头疼的指针问题
最近在学习指针,但学的有点糊涂了,这道题怎么都分析不清楚,还望哪位高手指点一下,能让我理清思路,想清楚前因后果,谢谢啦!程序如下:
#include <stdio.h>
void main()
{
int x=1,y=2,*p1,*p2,*t;
p1=&x,p2=&y;
t=p1;p1=p2;p2=t;
printf("%d %d\n",x ,y);
printf("%d %d\n",*p1 ,*p2);
}
我上机运行了一下,结果为1,2 2,1
我不明白的是,为什么输出 x,y 值为1,2,x不就是*p1,y不就是*p2么?为什么输出结果不是2,1呢?