[C语言] 交换变量的3种方法
#include<stdio.h> void main() { int a = 5, b = 10; int temp; printf("a = %d, b = %d\n", a, b); // 借助中间变量,增加了空间复杂变 temp = a; a = b; b = temp; printf("a = %d, b = %d\n", a, b); // 后面两种方法没有增加空间复杂度,但是时间复杂度较高 // 借助加减法,可能会出现数据越界 a = a + b; b = a - b; a = a - b; printf("a = %d, b = %d\n", a, b); // 借助异或运算,不会出现数据越界 a = a ^ b; b = a ^ b; a = a ^ b; printf("a = %d, b = %d\n", a, b); getchar(); }