質問1
%lfは何の略なのか(例 %fのfはfloating point)
考えても有意義ではありません(決め打ちで指定されているものですので、「そのまま指定する」以外の選択肢がありません)。
printfの時の出力指定子は%fで,どうしてscanfの時は%lfなのか
printf
は可変長引数ですが、可変長引数の変数にfloat
を渡そうとしても、既定の実引数拡張という変換が入って、結局はdouble
が渡されるので、float
でもdouble
でも指定子は同じものを指定する形となります(ただし、あまりに皆が間違いすぎるので、C99では%lf
もdouble
を処理できるようになってしまっています)。
一方で、float*
とdouble*
は可変長引数で渡しても変換されない(変換できない)ので、書式を別に設定させる必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。