黑马程序员技术交流社区

标题: 面试题——关于数据置换问题(涉及int a 和 int &a) [打印本页]

作者: 公输子    时间: 2015-8-29 21:37
标题: 面试题——关于数据置换问题(涉及int a 和 int &a)

          int i = 1;
          int j = 2;
[url=]/*利用第三方变量,作为临时存储[/url]  来达到置换功能 该方法在开发的时候使用*/
          int temp = i;
               i=j;
               j=temp;
          System.out.println(i+"←→"+j);



例:
void swap(int &a,int &b)// 这里定义一个引用
{
  int temp = a;
          a=b;
          b=temp;
}

-------------------------------------------------------------------------------------------
          int a = 3;
          int b = 4;
[url=]/*利用位异或的特性,异或两次值不变的属性[/url] 来达到不使用第三方变量去置换数据功能*/
          a = a ^ b;
          b = a ^ b;
          a = a ^ b;
          System.out.println(a+"←→"+b);

例:
void swap(int &a,int &b)
{
a = a^ b ;
b = a^ b ;
a = a^ b ;
}
注意这里
int a   是定义一个整型变量a

int &a 是定义一个存放整形变量a的地址(定义的是一个地址)

------------------------------------------------------------------------------------------
          int x = 5;
          int y = 6;
/*利用算数运算的特点,达到不使用第三方变量去置换数据的功能*/
          x = x + y;
          y = x - y;
          x = x - y;
          System.out.println(x+"←→"+y);







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