本文介绍了如何交换两个号码,而无需使用第三个变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以使用第三个变量,但解决不了,而无需使用第三个变量解决。

解决方案

 无效swap_int(无符号整数*一,无符号整型* B){
   *一个^ = * B; //那之后:一个==(orig_a ^ orig_b)
   * B ^ = * A; //那之后:乙==(orig_b ^一)==(orig_b ^ orig_a ^ orig_b)== orig_a,因而被转移到b
   *一个^ = * B; //后认为:一==(orig_a ^ orig_b)^ B ==(orig_a ^ orig_b)^ orig_a == orig_b,因此我们很高兴,并准备
}
 

I can solve it using third variable but can't solve without using third variable.

解决方案
void swap_int(unsigned int *a, unsigned int *b) {
   *a^=*b; // After that: a==(orig_a ^ orig_b)
   *b^=*a; // After that: b==(orig_b ^ a)==(orig_b ^ orig_a ^ orig_b)==orig_a, thus a was moved to b
   *a^=*b; // After that: a==(orig_a ^ orig_b) ^ b==(orig_a ^ orig_b) ^ orig_a==orig_b, thus we are happy and ready
}

这篇关于如何交换两个号码,而无需使用第三个变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-04 19:27