teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2021/05/14 22:18

投稿

hoshi-takanori
hoshi-takanori

スコア7903

answer CHANGED
@@ -84,4 +84,31 @@
84
84
  main:
85
85
 
86
86
  array -------> { 100 }
87
+ ```
88
+
89
+ ---
90
+
91
+ お描きになった図はバッチリだと思いますが、どのへんが納得いかないのでしょうか?
92
+ 例えばこのコードはどうでしょうか?
93
+
94
+ ```java
95
+ public class ArrayTest2 {
96
+
97
+ static void method3(int[] a) {
98
+ int[] other = { 10, 20 };
99
+ a[0] = 100;
100
+ a = other;
101
+ a[1] = 200;
102
+ }
103
+
104
+ public static void main(String[] args) {
105
+ int[] array = { 1, 2 };
106
+ System.out.println(array[0]); // => 1
107
+ System.out.println(array[1]); // => 2
108
+
109
+ method3(array);
110
+ System.out.println(array[0]); // => 100
111
+ System.out.println(array[1]); // => 2
112
+ }
113
+ }
87
114
  ```

2

method1 から return したときの状況を追記

2021/05/14 22:18

投稿

hoshi-takanori
hoshi-takanori

スコア7903

answer CHANGED
@@ -48,6 +48,12 @@
48
48
 
49
49
  method1 から return しても、array はそのままなので、13 行目では 0 が表示されます。
50
50
 
51
+ ```
52
+ main:
53
+
54
+ array -------> { 0 }
55
+ ```
56
+
51
57
  次に method2 が呼ばれると、引数 a は array を指してます。
52
58
 
53
59
  ```

1

誤字訂正

2021/05/14 20:06

投稿

hoshi-takanori
hoshi-takanori

スコア7903

answer CHANGED
@@ -55,7 +55,7 @@
55
55
 
56
56
  array ---+---> { 0 }
57
57
  |
58
- method1: |
58
+ method2: |
59
59
  |
60
60
  a -------+
61
61
  ```
@@ -67,7 +67,7 @@
67
67
 
68
68
  array ---+---> { 100 }
69
69
  |
70
- method1: |
70
+ method2: |
71
71
  |
72
72
  a -------+
73
73
  ```