C语言只使用2个变量实现交换两个int数字,方法越多越好,谢谢
问题描述:
C语言只使用2个变量实现交换两个int数字,方法越多越好,谢谢
答
int x = 1;
int y = 2;
x = x ^ y;
y = x ^y;
x = x ^ y;
答
int x=1;
int y=2;
x=x+y;
y=x-y;
x=x-y;
答
int x=1
int y=x+1
答
x=x+y;
y=x-y;
x=x-y;
答
int a,b;
b=a+b-(a=b);
答
我以为b=a+b-(a=b) 应该是结果为b = 原来的b 没有改变b。
但是我测试发现vs2010是这样的 没有改变的b, 但是gcc 就是a b互换啦。我觉得如下应该没有歧义吧:
b = (a+b)-(a=b);
答
int swap (x,y)
{
x=x+y;
y=x-y;
x=x-y;
}
拿去,不用谢
答
除了位操作外,其它几种好像都没有考虑溢出