【发布时间】:2017-02-19 04:34:55
【问题描述】:
public class JavaApplication6 {
public static void a(int b)
{
b++;
}
我正在调用函数 a 并传递变量 b,目的是像 C++ 引用 (&b) 一样递增它。这行得通吗?如果不是,为什么?
public static void main(String[] args) {
int b=0;
a(b);
System.out.println(b);
}
}
【问题讨论】:
-
你不能那样做。
-
但是为什么我可以在 c++ 中通过引用将变量传递给函数来做到这一点除了全局声明之外还有其他方法吗
-
在 Java 中它是按值传递的,因此您不能更改 b 的值。而在 C、C++ 等编程语言中,您可以传递指针并使用指针来增加值。
-
这通常是一个坏主意,并导致复杂的不可读代码。你想解决什么问题?
-
您不能“本机”执行此操作,但您可以使用可以修改的成员变量
int b的单个引用来定义自己的MyInt类
标签: java function parameter-passing