void Swap(int x, int y) { int tmp = 0; tmp = x; x = y; y = tmp; } …… Swap(a,b)
我们发现a和b并没有交换,因为x和a,y和b的地址不相同,所以x,y交换
a和b并不会改变
我们要使用指针变量
#include <stdio.h> void Swap(int* pa, int* pb) { int tmp = 0; tmp = *pa; *pa = *pb; *pb = tmp; } int main() { int a = 10; int b = 20; printf("a=%d b=%d\n", a, b); Swap(&a, &b); printf("a=%d b=%d\n", a, b); return 0; }