黑马程序员技术交流社区

标题: C#如何不使用第三方变量进行值交换 [打印本页]

作者: SUN_Q    时间: 2013-7-13 02:40
标题: C#如何不使用第三方变量进行值交换
C#如何不使用第三方变量进行值交换
作者: chensc    时间: 2013-7-13 05:29
学习学习!
作者: 黑骏马    时间: 2013-7-13 06:27
这个问题我以前看到过,
b=a+b;
a=b-a;
b=b-a;
作者: 彭家贰小姐    时间: 2013-7-13 08:34
(1)通过第三方变量

int n=3,m=6;

int temp;

temp=n;

n=m;

m=temp;

(2)不用第三方变量[如果n和m的值非常大,容易超出int范围]

int n=3,m=6;

n=n+m;

m=n-m;

n=n-m;

(3)通过异或

int n=3,m=6;

n=n^m;

m=n^m;

n=n^m;


作者: changweihua    时间: 2013-7-13 13:52
使用ref关键字呗,亲
作者: §風過無痕§    时间: 2013-7-13 15:25
1.可利用算术运算a=10;b=5;    a=a+b   b=a-b   a=a-b;
2.可通过异或 不够异或牵扯到对二进制的运算  ^


作者: brucel50    时间: 2013-7-22 08:48
int a = 1;
int b = 2;
a = a+b;  //a=3,b=2
b = a-b;  //a=3,b=1
a = a - b;//a=2,b=1
作者: 王云峰    时间: 2013-7-23 16:36
我基础测试刚做这个题,以前还真没考虑过这个问题.我是这么做的:
int a,b;
a=a+b;
b=a-b;
a=a-b;
作者: brucel50    时间: 2013-7-24 18:23
王云峰 发表于 2013-7-23 16:36
我基础测试刚做这个题,以前还真没考虑过这个问题.我是这么做的:
int a,b;
a=a+b;

未赋值,先使用会报错的~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2