【发布时间】:2011-04-07 04:11:25
【问题描述】:
我是 Java 新手。如何编写以下 C 代码的 java 等价物。
void Swap(int *p, int *q)
{
int temp;
temp = *p;
*p = *q;
*q = temp;
}
【问题讨论】:
-
我不会简单地给出一个交换方法,而是给你this article。它解释了如何制作交换方法,还解释了如何不制作它,以及为什么它不可能以您期望的形式出现,因为 Java 只是按值传递(与 C/C++ 不同)
-
错误答案.. java 不仅是按值传递.. 当您传递非本机值时,您正在传递一个指针。如果你必须更新它,它是一个指针。 javadude.com/articles/passbyvalue.htm
-
您正在传递对对象的引用 - 是的,但是引用被复制了。 “按值传递引用”可能是一个更好的描述。不能更改传递的引用,只能更改目标对象
-
我认为 method 是最接近 Java 中的交换函数的。
-
我发现这篇文章试图弄清楚同样的事情。 link