在swap()函数中,交换的并不是两个指针,而是两个指针指向的地址内存放的两个变量(也就是a与b)。试比较一下:int *temp;temp=p1;p1=p2;p2=temp;这才仅仅是交换的指针指向的地址(p1p2两个指针指向地址的内容a与b并没有发生改变)。