a=10 ,b=15 在不采用第三方变量的前提下,写一方法将a与b互换

解决方案 »

  1.   

    a=10,b=5
    a=a+b;  //a=15,b=5
    b=a-b;  //a=15,b=10
    a=a-b;  //a=5,b=10
      

  2.   

    a ^= b ^= a ^= b;
      

  3.   

    a=10,b=5
    a=a+b;  //a=15
    b=a-b;  //b=10
    a=a-b;  //a=5
      

  4.   

    www_123du_com(鼠·神·泪) 最牛!leonchenjian(小黑) 看不出懂! 但大概明白,就是不会计算了!哈
      

  5.   

    diandian82(点点) 别装做不屑一顾的样子,谁都是从学习中过来的.www_123du_com(鼠·神·泪) leonchenjian(小黑) 
    两位能否解释下?
      

  6.   

    a = (b=a)*0+b;
    这个是不是利用了运算符优先级?
      

  7.   

    环境:Visual Studio 2005(.NET2.0)
    预置:
    int a = 10;
    int b = 15;方法1.
    a = b+(b=a)*0;   //用a=(b=a)*0+b测试是不行的,即b必须写在表达式前面方法2.
    a = a + b;
    b = a - b;
    a = a - b;   //这种方法是最直观的,不过有可能溢出方法3.
    a ^= b;
    b ^= a;
    a ^= b;   //a ^= b ^= a ^= b;却不行,暂时还不知道原因
      

  8.   

    哈哈,我一直只知道用:
    a = a + b;
    b = a - b;
    a = a - b; 
    原来还有更好的办法,a = b+(b=a)*0;汗,要努力学了。
      

  9.   

    a = b+(b=a)*0
    爽啊.....
      

  10.   

    老掉牙了,在CSDN里这个帖子出现次数也不下10次