#include <stdio.h> void swap1(int *a, int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; } void swap2(int *a, int *b) { *a = (*a) + (*b); // sum = a + b; *b = (*a) - (*b); // b = sum - b; = a *a = (*a) - (*b); // a = sum - b; = sum - a } void swap3(int *a, int *b) { *a = (*a) ^ (*b); // sum = a ^ b; *b = (*a) ^ (*b); *a = (*a) ^ (*b); } void swap4(int a[], int b[]) { int tmp; tmp = a[0]; a[0] = b[0]; b[0] = tmp; } int main(void) { int m = 5; int n = 9; printf("before swap data m: %d, n: %d/n", m, n); swap1(&m, &n); printf("after swap data m: %d, n: %d/n", m, n); swap2(&m, &n); printf("after swap data m: %d, n: %d/n", m, n); swap3(&m, &n); printf("after swap data m: %d, n: %d/n", m, n); swap3(&m, &n); printf("after swap data m: %d, n: %d/n", m, n); return 0; } 应该还有的,暂时没有想起来了