交换两个变量,而不引用第三个变量.

前几天,同学阿虫去面试,被人问及此问题,当时答曰不会,他也没在意.到了第二家公司竟然仍被问及此问题,依然答曰不会.回来问我,我竟然不知何解,觉得一定有好办法,只是想不出.昨晚苏州同学聚会,仍然有许多同学不知道,经过歌星解释才知的确有好办法.
如下:
void swap(int a,int b)
{
a
=a^b;
b
=b^a; //b^a相当于 b^a^b 也就是 b^a^b的值就是a了, 下边相同
a=a^b;
}
其实很简单,只是没有想到而已.如果你要去面试,能否有用?
上边的方法应是swap(ref int a,ref int b),为保持原来本色,暂不改之,此句是我29号加上的.
posted on 2004-09-27 12:39  CoolBug  阅读(7817)  评论(69编辑  收藏  举报