【C语言初阶】:经典面试题之交换两个整形变量的值
【问题描述】:给定两个整形变量,然后交换两个变量的值。
【程序设计】:
方式一:定义一个临时变量tmp,然后根据临时变量交换两个变量的值。
方式二:不设立临时变量,用加法操作交换两个变量的值(也可以用乘法,原理一样,这里就不多赘述)。
方式三:用异或运算交换两个变量的值。*(异或简单来说就是相同取0,不同取1)
*异或运算基于以下几个性质:
- 任意变量x与自身异或结果为0,即:
x^x = 0
- 任意变量x与0进行异或运算,结果不变,即:
x^0 = x
- 异或运算的结合性:
a^b^c = (a^b)^c = a^(b^c)
- 异或运算的交换性:
a^b = b^a