#include<stdio.h>

void swap1(int x, int y) {      //最普通的交换,利用中间数值
	int temp = x;
	x = y;
	y = temp;
	printf("交换后的值为%d %d\n", x, y);//只能在函数内部打印,出了函数ab还是原值,因为函数中的是形参,相当于一份拷贝,不改变函数外的原值
}                                       //在函数内部打印是比较捞的,不推荐

void swap2(int* x, int* y) {    //利用地址交换,可以达到真实交换数值的目的
	int temp = *x;
	*x = *y;
	*y = temp;
}

int main() {
	int a = 0;
	int b = 0;
	printf("请输入想要交换的两个数值:");
	scanf_s("%d%d", &a, &b);
	swap1(a, b);
	swap2(&a, &b);
	printf("交换后的值为%d %d\n", a, b);
	return 0;
}

方法一中的a、b是形式参数,不会对主函数中的a、b有所改变

利用函数交换数值的两种方式_形参