[原创]关于c语言中常量交换方法的总结(限于两个数)
师哥师姐们,大家好,这是我发的第一篇帖子,水平有限请见谅.
在c语言课本上有一个习题是这样的:
写出程序运行的结果:
main()
{int a=3,b=4;
a=a^4;
b=b^a;
a=a^b;
printf("%d,%d"a,b);
}
根据异或运算结果是:a=4,b=3忽然我发现他们互换了,于是我就把它推广到任意的两个数发现都成立,于是得出了异或运算的一个性质,也就是两数交换的第一个方法
(1)任意的两个数a,b有a^(a^b)=b,b^(a^b)=a
(2)借助中间变量:如上题可引入中间变量c令c=a;a=b;b=c;
(3)算术方法:引入变量t,另t=a+b;a=t-a;b=t-b;或者a=a+b;b=a-b;a=a-b
水平是不怎么样,但是我确确实实思考了.