利用一个小技巧,一个整数a在异或另一个整数b两次以后所得的值还是整数a. 具体的过程我们可以自己找两个整数以二进制的形式自己在纸上画一下他们的异或过程.(异或的运算符号为"^") 比如: 下面给出交换两个整数位置的代码,不需要临时变量temp. public class Aa { public static void main(String[] args) { int a = 3, b = 5; System.out.println("before swap:" +…
今天看到一位大神的博客,深受感触.决定也发一篇博客,证明一下我还活着. 于是我翻看以前学习时做的一些笔记,整理了一下,得到了一个关于异或运算交换变量变量值的笔记. 首先来看下面三组表达式,看起来他们都能实现交换两个变量的值. a = a ^ b; b = a ^ b; a = a ^ b; a = a ^ (b = b ^ (a = a ^ b)); a ^= b ^= a ^= b; 可实际的情况是,前面2组表达式,在C.C++.Java中都能顺利完成变量值的交换.而第3组表达式,却只在C.C…
引用作函数形参交换两个整数 设计一个void类型的函数Swap,该函数有两个引用类型的参数,函数功能为实现两个整数交换的操作. 裁判测试程序样例: #include <iostream> using namespace std; /* 请在这里填写答案 */ int main() { int a, b; cin >> a >> b; Swap(a, b); cout << a << " " << b <<…
想用一句话搞定交换: int a = 2, b = 5; cout << "a = " << a << ", b = " << b << endl; a = (a + b) - (b = a); cout << "a = " << a << ", b = " << b << endl; 然而输出: a = 2…
#include <iostream> using namespace std; int main(){ //求两数的和? int a,b,s; cout<<"请你输入两个整型的数字:"<<endl; cin>>a>>b; int sum(int x ,int y); s=sum(a,b);//实际参数 ,代表具体数值,在()当中 cout<<"The sum of a and b is:"&l…
#include <iostream> #include <vector> using namespace std; int main () { vector<,); // three ints with a value of 100 vector<,); // five ints with a value of 200 foo.swap(bar); cout << "foo contains:"; ; i<foo.size();…