A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© SUN_Q 中级黑马   /  2013-7-13 02:40  /  1691 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

C#如何不使用第三方变量进行值交换

评分

参与人数 1技术分 +1 收起 理由
zhangcheng5468 + 1 赞一个!

查看全部评分

8 个回复

倒序浏览
学习学习!
回复 使用道具 举报
这个问题我以前看到过,
b=a+b;
a=b-a;
b=b-a;
回复 使用道具 举报
(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;

评分

参与人数 1技术分 +1 收起 理由
zhangcheng5468 + 1 赞一个!

查看全部评分

回复 使用道具 举报
使用ref关键字呗,亲
回复 使用道具 举报
1.可利用算术运算a=10;b=5;    a=a+b   b=a-b   a=a-b;
2.可通过异或 不够异或牵扯到对二进制的运算  ^

回复 使用道具 举报
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
回复 使用道具 举报
我基础测试刚做这个题,以前还真没考虑过这个问题.我是这么做的:
int a,b;
a=a+b;
b=a-b;
a=a-b;
回复 使用道具 举报
王云峰 发表于 2013-7-23 16:36
我基础测试刚做这个题,以前还真没考虑过这个问题.我是这么做的:
int a,b;
a=a+b;

未赋值,先使用会报错的~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马