ここから本文です

プログラミング

アバター

ID非公開さん

2019/7/1803:28:47

プログラミング

画像10行目なんですが、=って左辺を右辺に代入ですよね??それ以外の意味持たないですよね??

画像の次のページでは、abそれぞれのidとnameを入力。実行結果でabcのidとnameが表示され、bとcが同じ値を持つ所まで理解できました。

しかし、その後、cのデータを加えるとbc両方のデータが変わります。そこが理解できません。

=が左辺から右辺への代入であれば、cの値を変えようとbへ代入されないのでは無いですか??

教科書だけでは理解できないので教えて下さいm(__)m

補足訂正
=は左辺から右辺→=は右辺から左辺

右辺,左辺,データ,name,教科書,トランプ,参照元

閲覧数:
8
回答数:
1

違反報告

ベストアンサーに選ばれた回答

esb********さん

2019/7/1803:43:41

この言語はしたことないが、おそらく参照の問題。

a = new A();
b = a;

というものがあるとする。

b に代入されているのは a である。よって、a が参照している値と b が参照している値は同じということなる。

b の値を変える……というのは参照元の値を変えることになるので、その参照元を参照している a も同時に変更されてしまうというもの。


俺もプログラム組んだとき、これに結構悩まされたわ。挙動の意味がわからなくてな。図で表すならこんな感じだ。


****A
参照元<
****B


うーん、まだわかりにくいかな……


A、B、C の人がいるとする。
C の人の手にはトランプのカードでスペードの 7 を持っているとする。A と B は C のトランプのカードを見ることができ、トランプのカードを変更することもできます。

例えば、ここで A が C の持つトランプのカードを変更すると、B が見れる C のトランプのカードももちろんのことながら変更されてしまいますね。

こういう現象が起こってます。



なんとなくわかったかな?

だから、参照の問題だと思うよ^^こういうところが摩訶不思議だけど、楽しい部分でもあるよねプログラミングはよお!

アバター

質問した人からのコメント

2019/7/18 03:51:30

これは凄い…なんか分かった気がします!!
図もトランプも理解出来るとすごく面白い構造だ!!Σ(゚д゚lll)
今日テストなので助かりました!!嬉泣
ありがとうございましたm(__)m

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる