*a ^= *b ^= *a ^= *b理解:
自右向左逐一赋值。
例如:*a = 1100, *b = 0100。*a ^= *b把1100和0100异或后赋值给*a,则*a为1000。*b ^= *a把0100和1000异或后赋值给*b,则*b为1100。*a ^= *b把1000和1100异或后赋值给*a,则*a的值为0100。从而*a 和*b的值实现了交换。
*a ^= *b ^= *a ^= *b理解:
自右向左逐一赋值。
例如:*a = 1100, *b = 0100。*a ^= *b把1100和0100异或后赋值给*a,则*a为1000。*b ^= *a把0100和1000异或后赋值给*b,则*b为1100。*a ^= *b把1000和1100异或后赋值给*a,则*a的值为0100。从而*a 和*b的值实现了交换。