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

回答編集履歴

4

何を渡すか追記

2025/11/29 22:21

投稿

shiracamus
shiracamus

スコア5413

answer CHANGED
@@ -5,8 +5,8 @@
5
5
 
6
6
  昔の言語は「値型変数」(保持値=代入値)しかなくて、値型変数を値渡しするか参照渡しするかでした。
7
7
 
8
- - 1.値型変数の値渡し(実引数と仮引数は別変数、値コピー)
8
+ - 1.変数のを渡す:値型変数の値渡し(実引数と仮引数は別変数、値コピー)
9
- - 2.値型変数の参照渡し(実引数と仮引数は同一変数、変数共有)
9
+ - 2.変数自体を渡す:値型変数の参照渡し(実引数と仮引数は同一変数、変数共有)
10
10
 
11
11
  その2つの pass by value/reference を省略せずに書くと、
12
12
 

3

要するに~の文を追記

2025/11/29 02:07

投稿

shiracamus
shiracamus

スコア5413

answer CHANGED
@@ -21,9 +21,10 @@
21
21
 
22
22
  が増えることになりました。
23
23
  Pythonは「参照型変数」しかなくて「値渡し」しかできないので3.のみできます。
24
+ 3.を英語にすると pass the reference to the object とか pass the object by object reference でしょうか。「オブジェクト共有渡し」とか単に「共有渡し」と呼ばれています。
24
25
 
25
26
  ということで、1.と3.が「狭義の値渡し」で2.と4.が「狭義の参照渡し」、1.が「広義の値渡し」で3.が「広義の参照渡し」ということになるかと思います。ただし、C言語の「ポインタ型変数の値渡し」は1.なのですが「広義の参照渡し」になると思います。
26
- 3.を英語にすると pass the reference to the object とか pass the object by object reference でょうか。オブジェクト共有渡し」とか単に「共有渡し」と呼ばれています。
27
+ するに「呼出元に影響を与えない」のが広義の値渡し」、「呼出し元影響を与える」のが広義の参照渡し」います。
27
28
 
28
29
  Qiitaに図解記事を書いてみました。参考になりましたら幸いです。
29
30
  - [値渡し、ポインタ渡し、オブジェクト共有渡し、参照渡しの言語別対応表と用語説明 - Qiita](https://qiita.com/shiracamus/items/63f6ef513a203ee82e7c)

2

ポインタ型変数を追記

2025/11/29 02:03

投稿

shiracamus
shiracamus

スコア5413

answer CHANGED
@@ -22,7 +22,7 @@
22
22
  が増えることになりました。
23
23
  Pythonは「参照型変数」しかなくて「値渡し」しかできないので3.のみできます。
24
24
 
25
- ということで、1.と3.が「狭義の値渡し」で2.と4.が「狭義の参照渡し」、1.が「広義の値渡し」で3.が「広義の参照渡し」ということになるかと思います。
25
+ ということで、1.と3.が「狭義の値渡し」で2.と4.が「狭義の参照渡し」、1.が「広義の値渡し」で3.が「広義の参照渡し」ということになるかと思います。ただし、C言語の「ポインタ型変数の値渡し」は1.なのですが「広義の参照渡し」になると思います。
26
26
  3.を英語にすると pass the reference to the object とか pass the object by object reference でしょうか。「オブジェクト共有渡し」とか単に「共有渡し」と呼ばれています。
27
27
 
28
28
  Qiitaに図解記事を書いてみました。参考になりましたら幸いです。

1

狭義・講義の値渡しについても追記

2025/11/29 01:59

投稿

shiracamus
shiracamus

スコア5413

answer CHANGED
@@ -22,7 +22,7 @@
22
22
  が増えることになりました。
23
23
  Pythonは「参照型変数」しかなくて「値渡し」しかできないので3.のみできます。
24
24
 
25
- ということで、2.と4.が「狭義の参照渡し」、3.が「広義の参照渡し」ということになるかと思います。
25
+ ということで、1.と3.が「狭義の値渡し」で2.と4.が「狭義の参照渡し」、1.が「広義の値渡し」で3.が「広義の参照渡し」ということになるかと思います。
26
26
  3.を英語にすると pass the reference to the object とか pass the object by object reference でしょうか。「オブジェクト共有渡し」とか単に「共有渡し」と呼ばれています。
27
27
 
28
28
  Qiitaに図解記事を書いてみました。参考になりましたら幸いです。