C言語の%dの意味とは?【printfの出力変換指定子】
目次
C言語の%dの意味は?
C言語で時々出てくる「%d
」ってありますよね。
これどういう意味なんでしょうか?
一体何をやっているんでしょうかこれは?
結論を言いますと、「%d
」は
printf関数で整数を出力したい時に使う
ということになります。
この記事ではC言語の「%d
」について具体的に解説していきます。
%dはどんな時に使われるのか?
C言語の「%d
」はどんな時に使われるのかと言うと、これは主に
printf関数で使われる
ということになります。
scanf()
関数で使われることもありますが、主な用途としてはprintf()
関数が多いです。
printf()
関数で変数の値を出力したい、特に整数の変数を出力したい時にこの「%d
」という変換指定子が使われます。
(^ _ ^) | そうか、変数を出力したい時に使うのか |
これは具体的なコードにするとたとえば
int a = 10; printf("%d\n", a); // 10
というようなコードになります。
↑の変数a
が整数の変数です。
そしてこれをprintf()
の引数に渡します。
そしてprintf()
の第1引数の書式には「%d\n
」と指定しています。
これは引数の変数を整数として画面に出力して改行を入れる、という指定になります。
↑のコードを実行すると結果は
10
になります。
出力変換指定子とは?
出力変換指定子とはprintf()
などの第1引数のフォーマットに指定できるものです。
printf()
で変数を出力したい時はこの指定子を使って変数を文字列に変換する必要があります。
ですので「%d
」という指定子は、int
型の変数を文字列に変換するための指定なんですね。
%dを使った色々なコード
「%d
」の指定にはいろいろな方法があります。
それがフラグと出力幅を使った方法です。
フラグは
- ... 左に寄せて出力 + ... 負数でない数に「+」を付ける
などがあります。
これはサンプルコードは
printf("[%-10d]\n", 10); // [10 ] printf("%+d\n", 10); // +10
になります。
出力幅は出力全体の桁数の指定です。
たとえば「%10d
」とやると桁数は10桁になります。
この状態で先ほどのようにフラグの「-」を立てると10桁の中で出力が左に寄ります。
またアスタリスクを使うと出力幅を外部から指定できるようになります。
たとえば
printf("[%*d]\n", 5, 1); // [ 1]
のようにです。
↑の場合、出力幅を「5
」で外部から指定しています。
ですので桁数が5桁になっています。
%dの他にはどんな指定子があるのか?
「%d
」の他には代表的なものは↓のような指定子があります。
%c ... charに対応。文字を出力する指定子
%s ... 文字列に対応。文字列を出力する指定子
%f ... floatに対応。実数を出力する指定子
%lf ... doubleに対応。実数を出力する指定子
%ld ... longに対応。倍精度整数を出力する指定子
printf()
で変数を出力したい時はこれらの指定子を使い分けて使う必要があります。
%dの「d」は何の略か?
「%d
」の「d
」はおそらく「decimal(10進法)」の略ではないでしょうか。
「%f
」は「float
」の略だと思われますしけっこう単純な命名になっています。
おわりに
今回はC言語の「%d」について解説しました。
こいつの正体はprintf()
の出力変換指定子でした。
なにか参考になれば幸いです。
(^ _ ^) | %dで整数を出力! |
(・ v ・) | やったぜ |