一番最初のプログラム
次のプログラムを入力してコンパイルし、実行してください。
C言語ではアルファベットの大文字小文字、半角全角を区別するのでこの通り正しく入力してください。
画面に文字を表示するには、表示用の関数を呼び出さないといけません。このプログラムでは3行目でprintf(プリントエフ)関数を呼び出して画面に文字を表示しています。
C言語で関数を呼び出す際、関数名のあとに括弧をつけます。括弧の中に引数を書きます。引数は呼び出す関数に渡す情報です。今回の場合、printf関数を呼び出し、引数”Hello,world\n”を渡しています。C言語では、様々な関数を呼び出すことによって色々な処理が実行できます。また、printf関数などの画面に文字を表示させたり入力させる関数を呼び出す際に#include <stdio.h>が必要です。stdio.hファイルにprintf関数についてのデータが記録されており、それを読み込む命令です。
プログラム中のダブルコーテーション””で囲まれた部分は文字列リテラルといい、その名の通り文字列を表します。文字列リテラルの中身は自由に決められますが、改行やダブルクォーテーションを含めることはできません。今回はprintf関数の引数は文字列リテラルです。
return 0とはここではプログラムを終了する意味です。
printfとreturn以外はのちのち解説するので今は気にしなくて構いません。
文とセミコロン
さらに、printf(…)とreturn 0の後にセミコロン;がついています。C言語では関数呼び出しなどの一定の処理を文として表し、文の後にセミコロン;をつけるという決まりがあります。今回は関数printfを呼び出す文とreturn文があるのでセミコロンは2回使いました。
実行結果
正しく入力できた場合、画面に
Hello,world
と表示されるはずです。これ以外の文字はOSまたはIDEの機能によって表示されているもので、今回のプログラムとは関係ありません。
printf関数の仕様
次に、このプログラムを実行してください。
実行結果
1+1を計算すると
答えは2
最初のプログラムとprintfの引数が違います。今回は
“1+1を計算すると\n答えは%d\n”
1+1
の2つが引数で、コンマ,で区切っています。
printfの第1引数の中にある%dや\nはどういう意味でしょうか?
%dはprintfの変換指定子と呼ばれるもので、「次の引数を10進数で表示する」という意味です。dは10進数decimalの頭文字です。
\nはエスケープシーケンスと呼ばれる表記の一つです。エスケープシーケンスは通常の文字であらわしにくい特殊な文字記号を表す方法で、\nは改行を表します。文字列リテラルの中では改行できないので、この\nを改行としています。
printf以外の関数で表示
前半ではprintf関数を使って画面に文字を表示するプログラムを作りましたが今回はprintf以外の関数を使います。具体的にはputsという関数が使えます。
実行結果
printfで表示します
putsでも表示
します
実行結果を見ればわかるように、printfを使って画面に表示すると改行されず文字はそのままくっつけて表示されますがputsを呼び出すと自動で改行されます。
また、printfは%dのような変換指定子を用いて2個以上の引数を渡すことができますが、putsは引数として文字列リテラル1つのみを受け取ります。引数を2つ以上にしてputs関数を呼び出すとコンパイルエラーとなります。
まとめ
C言語では、関数を呼び出すことによって様々な処理を行う。
一つ一つの処理単位を文といい、文の終わりにはセミコロンをつける。
printf関数で画面に文字を表示させる。printf関数では、エスケープシーケンスや変換指定子が使用できる。
puts関数は文字を表示したあと、改行する。
コメント