回答編集履歴
1
誤字修正ほか
answer
CHANGED
@@ -5,6 +5,6 @@
|
|
5
5
|
|
6
6
|
> printfの時の出力指定子は%fで,どうしてscanfの時は%lfなのか
|
7
7
|
|
8
|
-
`printf`は可変長引数ですが、可変長引数の変数に`float`を渡そうとしても、**
|
8
|
+
`printf`は可変長引数ですが、可変長引数の変数に`float`を渡そうとしても、**既定の実引数拡張**という変換が入って、結局は`double`が渡されるので、`float`でも`double`でも指定子は同じものを指定する形となります(ただし、あまりに皆が間違いすぎるので、C99では`%lf`も`double`を処理できるようになってしまっています)。
|
9
9
|
|
10
10
|
一方で、`float*`と`double*`は可変長引数で渡しても変換されない(変換できない)ので、書式を別に設定させる必要があります。
|