回答編集履歴

1

追記

2021/05/31 07:12

投稿

ozwk
ozwk

スコア13528

test CHANGED
@@ -3,6 +3,8 @@
3
3
 
4
4
 
5
5
  以下のコードで`a`が`1`にならないのと全く同じ理由です。
6
+
7
+ 関数内で仮引数に再代入を行っても、呼び出し元には影響を与えません。
6
8
 
7
9
 
8
10
 
@@ -29,3 +31,23 @@
29
31
 
30
32
 
31
33
  ```
34
+
35
+
36
+
37
+
38
+
39
+ ---
40
+
41
+
42
+
43
+ ちなみに
44
+
45
+
46
+
47
+ [Man page of PRINTF](https://linuxjm.osdn.jp/html/LDP_man-pages/man3/printf.3.html)
48
+
49
+ > しかしながら、標準規格では、 sprintf(), snprintf(), vsprintf(), vsnprintf() の呼び出しにおいて、コピー元とコピー先のバッファーが重なっていた場合の 結果は不定である、と明記されている。
50
+
51
+
52
+
53
+ というわけで、その`sprintf`の使い方は「たまたま今回は動いている」です。