C语言通过指针交换两个数

#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版权协议,转载请附上原文出处链接和本声明。