交换连个对象的值(C/C++?JAVA)
如何交换两个变量的值:
C语言中的传值代码如下:
int change(int x,int y)
{
int temp=x;
x=y;
y=temp;
}
C语言中的传址代码如下:
int change(int *p,int *q)
{
int temp=*p;
*p=*q;
*q=temp;
}
使用C++中的引用类型代码如下:
int change(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
JAVA中代码同上;
上述代码共同点是都是使用的额外变量temp;如何不使用额外变量完成两个数的交换呢?
int change(int x,int y)
{
x=x+y;
y=x-y;
x=x-y;
}
例如:x=3,y=4
第一步:x=x+y=3+4=7;
第二步:y=x-y=7-4=3;
第三步: x=x-y=7-3=4;
如粗完成了连个数的交换,并且每有使用额外的空间.
相关文档:
TestRef.java
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
/**
* Created by IntelliJ IDEA.
* File: TestRef.java
* User: String
* Date: 2010-3-29 14:48:44 ......
Java Servlet API说明文档(2.1a版)(四)
术语表\r
bytecode
字节码:由Java编译器和Java解释程序生成的机器代码。
cookie
由Web服务器建立的数据,该数据存储在用户的计算机上,提供了一个Web站点跟踪用户的参数并 ......
传智播客JAVA培训OA项目 审批流转模块(未)
做工作,做技术,最主要的就是有一种专研的功能,特别是在学习的初期阶段也很重要,因为,老师永远不可能把所有的知识交给你,就像,你被你母亲生了下来,他手把手的教会了你走路,但是人生的路却是要你自己去走的一样。往日的学校,也仅仅是教会了你做人的道理,或者是学 ......