常常用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]);