&a, &b (變數前加 & 符號),函式內取該位址上的值 *x, *y (變數前加 * 符號)。
[dywang@deyu zzz]$ vim function3.c
[dywang@deyu zzz]$ cat function3.c
#include <stdio.h>
void swap(int *x, int *y) {
int temp;
temp = *x;
*x = *y;
*y = temp;
return;
}
main() {
int a, b;
printf("Enter TWO integers: ");
scanf("%d %d", &a, &b);
printf("Before swap, a = %d, b = %d\n", a, b);
swap(&a, &b);
printf("After swap, a = %d, b = %d\n", a, b);
}
[dywang@deyu zzz]$ gcc -o function3 function3.c
[dywang@deyu zzz]$ ./function3 Enter TWO integers: 10 20 Before swap, a = 10, b = 20 After swap, a = 20, b = 10 [dywang@deyu zzz]$ ./function3 Enter TWO integers: 21 11 Before swap, a = 21, b = 11 After swap, a = 11, b = 21