C语言swap不申请额外空间交换二个值
<div style="width: 100%; border: #cccccc 1px dashed;"><div style="width: 100%; border: #cccccc 1px dashed;">#include <stdio.h>void swap(int *x, int *y)
{
*x ^= *y;
*y ^= *x;
*x ^= *y;
}
void swap2(int *x, int *y)
{
*x = *x + *y;
*y = *x - *y;
*x = *x - *y;
}
void swap3(int *x, int *y)
{
*x = *x - *y;
*y = *x + *y;
*x = *y - *x;
}
int main()
{
int a, b;
a = 100 , b = 200;
printf("a:%d\tb:%d\n", a, b);
swap(&a, &b);
printf("a:%d\tb:%d\n", a, b);
swap2(&a, &b);
printf("a:%d\tb:%d\n", a, b);
swap3(&a, &b);
printf("a:%d\tb:%d\n", a, b);
return 0;
}
页:
[1]