使用操作符^不引入中间变量交换两个数
利用异或 ^ 来交换两个数的值,而且不引入其他变量。
unsigned int a=60; //0011 1100
unsigned int b=13; //0000 1101
a=a^b; //a=a^b=0011 0001
b=a^b; //b=a^b=0011 1100 相当于b1=(a^b)^b
a=a^b; //a=a^b=0000 1101 相当于a1=(a^b)^((a^b)^b)
示例代码:
#include<stdio.h>
int main( )
{
unsigned int a=60; //0011 1100
unsigned int b=13; //0000 1101
printf("a=%d,b=%d",a,b); //输出a,b的值
printf("\n");
a=a^b; //a=a^b=0011 0001
b=a^b; //b=a^b=0011 1100
a=a^b; //a=a^b=0000 1101
printf("a=%d,b=%d",a,b); //输出a,b的值
}
原文出处:http://www.runoob.com/cprogramming/c-operators.html评论区

浙公网安备 33010602011771号