質問編集履歴
5
参照値の渡し方は実態ではなくコピーを渡しているのか?
title
CHANGED
File without changes
|
body
CHANGED
@@ -51,4 +51,19 @@
|
|
51
51
|
|
52
52
|
|
53
53
|
みなさんはこれはこういうものだって割り切って理解しているのでしょうか?
|
54
|
-
なんかもっとスッキリしたいな~
|
54
|
+
なんかもっとスッキリしたいな~
|
55
|
+
|
56
|
+
*************************************************************************************
|
57
|
+
|
58
|
+
もう少しで納得しそうです。本当に皆様ありがとうございます。
|
59
|
+
|
60
|
+
12行目でメソッド1にarrayを渡していますがこれは、あくまで実態ではなく参照値のコピー
|
61
|
+
ここでもし実態を渡していたら(javaではありえませんが)aとarrayは同一のものになり
|
62
|
+
|
63
|
+
3行目の a = other; の処理で同じところが書き換えられarrayに反映するかと思うのですが、これがコピーだから影響ないという認識で間違いないでしょうか?
|
64
|
+
|
65
|
+
|
66
|
+
このような処理をC言語やC++での参照渡しでおこなったらどうなるのでしょうか?
|
67
|
+
お詳しい方いたら教えていただけると助かります。
|
68
|
+
|
69
|
+
*************************************************************************************
|
4
文字の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -51,19 +51,4 @@
|
|
51
51
|
|
52
52
|
|
53
53
|
みなさんはこれはこういうものだって割り切って理解しているのでしょうか?
|
54
|
-
なんかもっとスッキリしたいな~
|
54
|
+
なんかもっとスッキリしたいな~
|
55
|
-
|
56
|
-
*************************************************************************************
|
57
|
-
|
58
|
-
もう少しで納得しそうです。本当に皆様ありがとうございます。
|
59
|
-
|
60
|
-
12行目でメソッド1にarrayを渡していますがこれは、あくまで実態ではなく参照値のコピー
|
61
|
-
ここでもし実態を渡していたら(javaではありえませんが)aとarrayは同一のものになり
|
62
|
-
|
63
|
-
3行目の a = other; の処理で同じところが書き換えられarrayに反映するかと思うのですが、これがコピーだから影響ないという認識で間違いないでしょうか?
|
64
|
-
|
65
|
-
|
66
|
-
このような処理をC言語やC++での参照渡しでおこなったらどうなるのでしょうか?
|
67
|
-
お詳しい方いたら教えていただけると助かります。
|
68
|
-
|
69
|
-
*************************************************************************************
|
3
参照値の渡し方は実態ではなくコピーを渡しているのか?
title
CHANGED
File without changes
|
body
CHANGED
@@ -51,4 +51,19 @@
|
|
51
51
|
|
52
52
|
|
53
53
|
みなさんはこれはこういうものだって割り切って理解しているのでしょうか?
|
54
|
-
なんかもっとスッキリしたいな~
|
54
|
+
なんかもっとスッキリしたいな~
|
55
|
+
|
56
|
+
*************************************************************************************
|
57
|
+
|
58
|
+
もう少しで納得しそうです。本当に皆様ありがとうございます。
|
59
|
+
|
60
|
+
12行目でメソッド1にarrayを渡していますがこれは、あくまで実態ではなく参照値のコピー
|
61
|
+
ここでもし実態を渡していたら(javaではありえませんが)aとarrayは同一のものになり
|
62
|
+
|
63
|
+
3行目の a = other; の処理で同じところが書き換えられarrayに反映するかと思うのですが、これがコピーだから影響ないという認識で間違いないでしょうか?
|
64
|
+
|
65
|
+
|
66
|
+
このような処理をC言語やC++での参照渡しでおこなったらどうなるのでしょうか?
|
67
|
+
お詳しい方いたら教えていただけると助かります。
|
68
|
+
|
69
|
+
*************************************************************************************
|
2
「参照渡し」と「参照の値渡し」の違い
title
CHANGED
File without changes
|
body
CHANGED
@@ -37,4 +37,18 @@
|
|
37
37
|
私の勉強不足でまだ腑に落ちていないような気がします。
|
38
38
|
この図のような認識であっているでしょうか?
|
39
39
|
|
40
|
-

|
40
|
+

|
41
|
+
|
42
|
+
そもそも、この問題は参照渡しが理解できないというより
|
43
|
+
|
44
|
+
「参照渡し」と「参照の値渡し」の違いが理解できていないという事だったのですね。
|
45
|
+
|
46
|
+
メソッド1(参照の値渡し)
|
47
|
+
記述が省略してあるがnewしているので参照の値渡し → 呼び出し元の値は変わらない。
|
48
|
+
|
49
|
+
メソッド2は(参照渡し)
|
50
|
+
こちらは参照先の値が共通なので呼び出し元の値も変わる。
|
51
|
+
|
52
|
+
|
53
|
+
みなさんはこれはこういうものだって割り切って理解しているのでしょうか?
|
54
|
+
なんかもっとスッキリしたいな~
|
1
アドバイス頂いた内容を元に図解してみました。間違っているところがあればご指摘いただければ助かります。
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,4 +27,14 @@
|
|
27
27
|
14
|
28
28
|
15 method2(array);
|
29
29
|
16 System.out.println(array[0]); // => 100
|
30
|
-
17}
|
30
|
+
17}
|
31
|
+
|
32
|
+
|
33
|
+
追記
|
34
|
+
|
35
|
+
ご回答してくださった方々本当にありがとうございます!
|
36
|
+
アドバイスをもとに、自分なりに図を書いてみました。
|
37
|
+
私の勉強不足でまだ腑に落ちていないような気がします。
|
38
|
+
この図のような認識であっているでしょうか?
|
39
|
+
|
40
|
+

|