中級 › 参照渡しのつもりが値渡しで変更が反映されないバグ › パターン4
参照渡しのつもりが値渡しで変更が反映されないバグ
関数の引数を値渡し(int n)で受け取っているのに、関数の中身を書き換えたつもりで呼び出し元の変数まで変わることを期待してしまうバグです。
1 #include <iostream> 2 void addTen(_________ n) { ^ 3 n = n + 10; 4 } 5 int main() { 6 int total = 3; 7 addTen(total); 8 std::cout << total << std::endl; 9 return 0; 10 }
出力: 3期待: 13
空欄を埋めてコンパイル・実行を通す
値渡しでは引数はコピーされるため、関数内での変更は呼び出し元のtotalに影響しません。
次の問題