1.加減法
#include <stdio.h>
int main(int argc, char *argv[])
{
int a=1,b=2;
a=a+b;
b=a-b;
a=a-b;
printf("a=%d b=%d",a,b);
}
適用於交換整型變量,浮點型變量交換可能會損失精度。
2.乘除法
#include <stdio.h>
int main(int argc, char *argv[])
{
int a=1,b=2;
a = a * b;
b = a / b;
a = a / b;
printf("a=%d b=%d",a,b);
}
其中a, b必須爲非0值,適用於交換整型變量,浮點型變量交換可能會損失精度。
3.異或法
#include <stdio.h>
int main(int argc, char *argv[])
{
int a=1,b=2;
a ^= b;
b ^= a;
a ^= b;
printf("a=%d b=%d",a,b);
}
只適用於對整型變量進行交換,不適用於浮點型變量交換。
4.強制轉換移位法
#include <stdio.h>
int main(int argc, char *argv[])
{
int a=1,b=2;
b = (long int)((long int)a << 32 | (a = b)) >> 32;
printf("a=%d b=%d",a,b);
}
只適用於對整型變量進行交換,不適用於浮點型變量交換。