题出自------------------------零基础学C语言
直接使用形式参数无法改变实际参数的,所以第一次交换是无效交换,后面取用参数的地址,直接改变地址中的值。
#include<stdio.h>
void fun(int *m, int *n);
int main()
{
int a=24;
int b=19;
printf("交换前:\n");
printf("a=%d\nb=%d\n", a, b);
fun(&a, &b);
printf("交换后:\n");
printf("a=%d\nb=%d\n", a, b);
return 0;
}
void fun(int *m,int *n)
{
int x;
x = *m;
*m = *n;
*n = x;
}