1. 程式人生 > >C語言實現兩個數的交換

C語言實現兩個數的交換

常常用C寫排序演算法時,經常寫兩個數的交換。想來,也把自己知到的這些方式記錄一下:

(1)巨集定義方法:

#define SWAP(a, b) {a = a + b; b = a - b; a = a - b;}

使用示例:

int a[2] = {5, 1};
SWAP(a[0], a[1]);

(2)指標:

void swap(int *x, int *y)
{
    int tmp = *x;
    *x = *y;
    *y = tmp;
}

使用示例:

int a[2] = {5, 1};
swap(&a[0], &a[1]);