方法:
a ^= b;
b ^= a;
a ^= b;
错误方法:
a ˆ= b ˆ= a ˆ= b;
原因:表达式a ˆ= b ˆ= a ˆ= b;两次修改变量a,C标准中强烈声明这类表达式无定义,大部分编译器可以成功将a、b交换,但部分编译器会导致a被置为0。
适用范围:整数、非指针。
方法:
a ^= b;
b ^= a;
a ^= b;
错误方法:
a ˆ= b ˆ= a ˆ= b;
原因:表达式a ˆ= b ˆ= a ˆ= b;两次修改变量a,C标准中强烈声明这类表达式无定义,大部分编译器可以成功将a、b交换,但部分编译器会导致a被置为0。
适用范围:整数、非指针。