#include<stdio.h>
void swap1(int *p1,int *p2){
//p1,p2分别对应a,b的地址,*p1和*p2分别对应a和b的值
int p;//p是一个变量
p = *p1;
*p1 = *p2;
*p2 = p;
//通过地址进行值的交换操作,实际交换的是a,b的值
}
void swap2(int *p1,int *p2){
//p1,p2分别对应c,d的地址,*p1和*p2分别对应c和d的值
//这一步的操作是把p1 p2这两个地址当做形参进行操作
int *p;//p是一个指针
p = p1;
p1 = p2;
p2 = p;
//这个是形参交换,和原本的c d没有关系
}
int main() {
int a = 5,b = 10;
printf("原a b:%d %d\n",a,b);
swap1(&a,&b);
printf("swap1后a b:%d %d\n",a,b);
int c = 6,d = 8;
printf("原c d:%d %d\n",c,d);
swap2(&c,&b);
printf("swap2后c d:%d %d\n",c,d);
return 0;
}

版权声明:本文为qq_51231048原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。