#include <stdio.h>
//使用局部变量交换失败
//实际上交换的是p1,p2的值
void swap(int p1, int p2) {
int temp;
temp = p1;
p1 = p2;
p2 = temp;
}
int main() {
int a = 3, b = 4;
printf("交换前:a=%d b=%d\n", a, b);
swap(a, b);
printf("交换后:a=%d b=%d\n", a, b);
return 0;
}
//使用全局变量,修改成功
int a, b;
void swap() {
int t;
t = a;
a = b;
b = t;
}
int main() {
a = 3, b = 4;
printf("交换前:a=%d b=%d\n", a, b);
swap();
printf("交换后:a=%d b=%d\n", a, b);
return 0;
}
//使用指针,交换成功
//我们可以通过指针修改变量的值
void swap(int *p1, int *p2) {
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main() {
int a = 3, b = 4;
printf("交换前:a=%d b=%d\n", a, b);
swap(&a, &b);
printf("交换后:a=%d b=%d\n", a, b);
return 0;
}