标签:
以int类型为例。
一:
1 int tmp, left, right; 2 tmp = letf; 3 left = right; 4 right = tmp;
第一种是最为常见的,借助中间变量进行数值交换。
第二种和第三则不借助于中间变量。
二:
1 int left, right; 2 left = left + right - (right = left);
这种方法与编译器相关,不推荐,只做了解即可。
三:
1 int left, right; 2 left = left ^ right; 3 right = left ^ right; 4 left = left ^ right;
第三种相当来说难与理解一点,因为用到了C语言的按位与逻辑,我们可以拆开来看。
第2行代码跑完后,则left = left ^ right,刚第3行可变为right = left ^ right ^right。根据与运算的特性(相同得0,不同得1)和交换律可知第3行实际结果为right = letf。
再到第4行left = left ^ right ,同样代入,得left = left ^ right ^ left,同理得letf = right。
此方法简单可行,推荐。
最后再提一个我经常忘记的strcmp()函数,粘贴到此,以备以后翻阅。
标签:
原文地址:http://www.cnblogs.com/RookieSuperman/p/4321991.html