方法一(a、b未变,p1、p2的值改变): #include<stdio.h> #include<stdlib.h> int main() { int *p1,*p2,*p,a,b; scanf("%d,%d",&a,&b); p1=&a;p2=&b; if(a<b) { p=p1; p1=p2; p2=p; } printf("a=%d,b=%d/n/n",a,b); printf("max=%d,min=%d/n",*p1,*p2); system("pause"); } 方法二(指针指向不变,a、b改变): #include<stdio.h> #include<stdlib.h> void swap(int *p1,int *p2) { int temp; temp=*p1; *p1=*p2; *p2=temp; } int main() { int a,b; int*pointer_1,*pointer_2; scanf("%d,%d",&a,&b); pointer_1=&a;pointer_2=&b; if(a<b) swap(pointer_1,pointer_2); printf("/nmax=%d,min=%d/n",a,b); system("pause"); }