04/01/19 02:36
public class Sample{
public static void main(String args[]){
int x = new int[1];
func(x);
System.out.println(String.valueOf(x[0]));
}
static void func(int x[]){
x[0] = 100;
}
}
↑これって「100」と出力されるんですけど、どうしてですか?
main()メソッドのx[0]は0で初期化されますよね?
で、func()メソッドの引数として獲得されるx[]には
main()メソッドで定義したx[]配列への参照がコピーして
渡されるんですよね?
func()メソッド内で x[0] = 100; としたところで
func()メソッドで獲得した引数としてのx[]の参照先が
変わるだけで、main()メソッドで定義したx[]配列には
影響ないんじゃないの?でも、「100」と出力されちゃう。
どなたか説明していただけませんか?
私の勘違いを指摘してください。