1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main()
5 {
6 void swap(int *p1,int *p2);
7 int a,b;
8 int *pointer_1,*pointer_2;
9 printf("please enter a and b:");
10 scanf("%d,%d",&a,&b);
11 pointer_1 = &a;
12 pointer_2 = &b;
13 if(a<b) swap(pointer_1,pointer_2);
14 printf("max=%d,min=%d
",a,b);
15 return 0;
16 }
17 void swap(int *p1,int *p2)
18 {
19 int p;
20 p = *p1;//交换的是指针的变量,也就是a变量的值,结果输出会是max=大数,min=小数
21 *p1 = *p2;//*p《==》a,即*p是变量a的值,所以交换的时候是值的改变
22 *p2 = p;
23 }
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main()
5 {
6 void swap(int *p1,int *p2);
7 int a,b;
8 int *pointer_1,*pointer_2;
9 printf("please enter a and b:");
10 scanf("%d,%d",&a,&b);
11 pointer_1 = &a;
12 pointer_2 = &b;
13 if(a<b) swap(pointer_1,pointer_2);
14 printf("max=%d,min=%d
",a,b);
15 return 0;
16 }
17 void swap(int *p1,int *p2)
18 {
19 int p;
20 p = p1;//交换的是指针的地址,也就是p1和p2的地址互换,但是变量ab中的值仍没有变,所以输出时max=a=5;min=b=9;
21 p1 = p2;//此方法并没有实现值的转换,只是改变了地址
22 p2 = p;//p1,p2是地址所以互换的只是地址,变量啊a和b的值并没有变化
23 }
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main()
5 {
6 void exchange(int *q1,int *q2,int *q3);
7 int a,b,c,*p1,*p2,*p3;
8 printf("please enter three numbers:");
9 scanf("%d,%d,%d",&a,&b,&c);
10 p1 = &a;
11 p2 = &b;
12 p3 = &c;
13 exchange(p1,p2,p3);
14 printf("The order is:%d,%d,%d
",a,b,c);
15 return 0;
16 }
17 void exchange(int *q1,int *q2,int *q3)
18 {
19 void swap(int *pt1,int *pt2);
20 if(*q1 < *q2)swap(q1,q2);
21 if(*q1 < *q3)swap(q1,q3);
22 if(*q2 < *q3)swap(q2,q3);
23 }
24 void swap(int *pt1,int *pt2)
25 {
26 int t;
27 t = *pt1;
28 *pt1 = *pt2;
29 *pt2 = t;
30 }