作为一名应届毕业生,在做C语言笔试的时候总是会遇到在不利用第三个变量对数值交换的笔试题,下面我就将相关的解题思路汇总一下,方便和我有同样疑惑的伙伴们理解;
交换数值基本上可以有三种方式,
第一种:
void change(int &a,int &b){
int temp = a;
a = b;
b = a;
}
第二种:
void change(int &a,int &b){
a = a + b;
b = a - b;
a = a - b;
}
注意:这种方式容易造成益处,在32位系统上,int 类型占用4个字节,即:-2^16 ~ 2^16-1,
一不小心就容易造成整形数据的溢出。
第三种:
void change(int &a,int &b){
a ^= b;
b ^= a;
a ^= b;
}