C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。
Q&A
解決済
3回答
6505閲覧
総合スコア29
0グッド
0クリップ
投稿2021/04/25 07:27
0
質問
質問1 %lfは何の略なのか(例 %fのfはfloating point)
質問2 printfの時の出力指定子は%fで,どうしてscanfの時は%lfなのか
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答3件
ベストアンサー
質問1
%lfは何の略なのか(例 %fのfはfloating point)
考えても有意義ではありません(決め打ちで指定されているものですので、「そのまま指定する」以外の選択肢がありません)。
printfの時の出力指定子は%fで,どうしてscanfの時は%lfなのか
printfは可変長引数ですが、可変長引数の変数にfloatを渡そうとしても、既定の実引数拡張という変換が入って、結局はdoubleが渡されるので、floatでもdoubleでも指定子は同じものを指定する形となります(ただし、あまりに皆が間違いすぎるので、C99では%lfもdoubleを処理できるようになってしまっています)。
printf
float
double
%lf
一方で、float*とdouble*は可変長引数で渡しても変換されない(変換できない)ので、書式を別に設定させる必要があります。
float*
double*
投稿2021/04/25 07:33
総合スコア146018
printfでは引き数を数値で渡すけど、floatを引き数に記述したところで暗黙的にdoubleにキャストされてしまうので、%fでdouble決め打ちで行けばそんでいい、という事情があります
総合スコア88042
long long intの場合に %lldであることを考えると、long floatなのでしょうね。
投稿2021/04/25 22:01
総合スコア24670
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.35%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
C言語における%lfについて
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。