これは多くの人が一度は疑問に思った事があると思います。
「printfの「f」ってなに?」
私も昔、ずっと疑問に思い続けていました。
その答えは... format の略です。
このformatとは「書式付き」ということを意味しています。
例えば、puts関数が、文字を表示するだけなのに対し、
printf関数は、変数の値を表示させることなどが可能でしたね。
今まで、わけもわからず %d 等といったものを使用してきましたが、
ようやく、今になってそれについてやっていきます。
printf("%d\n",1);上のようなソースを書くと、どう表示されるでしょうか?
画面には 1 と、表示されます。
また、次のようなソースを書くとどうなるでしょうか?
printf("%d%d%d\n",1,2,3);少し解りにくいかもしれませんが、 123 と表示されます。
ここまでくると、少し解ってもらえたでしょうか?
%d と書いた部分が、後でコンマで区切った「数値」を「数字」に変換して表示されます。
「数値」と「数字」の違いについて少し書きます。
コンピュータは全てのものを「数値」として扱います。
よって、文字も数値として表現されます。
たとえば 'A' は 65 、 'B' は 66 と表されています。
一方、画面上に表示されている'1'や'2'というのは「数字」です。
数字もコンピュータの内部では数値として扱っています。
例えば '1' は 49 、 '2' は 50 と表されています。
ここら辺は、文字コードについて勉強すれば詳しくわかります。この、 %d のように、表示時に置き換えられる、特殊な文字を、
「書式制御文字」といいます。
よく使う書式制御文字の一覧を見てみましょう。
書式制御文字 役割 %d 数値を10進数の数字に置き換え %x 数値を16真数の数字に置き換え %c 数値を文字コードとして置き換え %s 数値列を文字列に置き換え とりあえず、今のところは %d だけが使えたら十分です。
それでは、復習を兼ねたソースを読んでみましょう。
#include <stdio.h> int main() { int i=1; int j=3; printf("%d+%d=%d\n",i,j,i+j); return 0; }実行結果は予測できたでしょうか?
もし予測できたらとりあえず今はそれで十分です。
(わからなければコンパイルしてみてください。)