回答編集履歴

3

追記

2018/04/19 10:12

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -77,3 +77,41 @@
77
77
  print(var) # -1
78
78
 
79
79
  ```
80
+
81
+
82
+
83
+ 私が『参照渡し』に期待する動作
84
+
85
+ ---
86
+
87
+ ```C++
88
+
89
+ #include<iostream>
90
+
91
+
92
+
93
+ void func(int& arg) {
94
+
95
+ arg = 42;
96
+
97
+ std::cout << arg << std::endl; // 42
98
+
99
+ }
100
+
101
+
102
+
103
+ int main(void) {
104
+
105
+ int val = -1;
106
+
107
+ func(val);
108
+
109
+ std::cout << val << std::endl; // 42
110
+
111
+
112
+
113
+ return 0;
114
+
115
+ }
116
+
117
+ ```

2

追記

2018/04/19 10:12

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -23,3 +23,57 @@
23
23
  もともと全部ポインタ渡しみたいなもんです。
24
24
 
25
25
  参照値を関数内部で書き換えたときに呼び出し元に影響しないのはCも一緒。
26
+
27
+ ```C
28
+
29
+ #include <stdio.h>
30
+
31
+
32
+
33
+ int the_answer = 42;
34
+
35
+ void func(int* arg) {
36
+
37
+ arg = &the_answer;
38
+
39
+ printf("%d\n", *arg); // 42
40
+
41
+ }
42
+
43
+
44
+
45
+ int main(void) {
46
+
47
+ int var = -1;
48
+
49
+ func(&var);
50
+
51
+ printf("%d\n", var); // -1
52
+
53
+
54
+
55
+ return 0;
56
+
57
+ }
58
+
59
+ ```
60
+
61
+
62
+
63
+ ```Python
64
+
65
+ def func(arg):
66
+
67
+ arg = 42
68
+
69
+ print(arg) # 42
70
+
71
+
72
+
73
+ var = -1
74
+
75
+ func(var)
76
+
77
+ print(var) # -1
78
+
79
+ ```

1

修正

2018/04/19 05:01

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  気軽に複数の要素を返せますし、Cと違ってうっかりフルコピーしてしまうことがないです。
6
6
 
7
- - **ミュータブルな要素を引数として渡す**
7
+ - **ミュータブルな要素を引数として渡す**
8
8
 
9
9
  状況によってはこちらが自然です。
10
10