printf()関数

前述したようにC言語は、関数の中に実行手順などの命令が記述され、関数単位に実行します。C言語は、ファイルの読み書き、時間、数学など、一般的なプログラミングで要求されるである基礎的な機能を標準ライブラリと呼ばれる関数群として提供しています。標準ライブラリもC言語の標準規格に含まれているため、標準に準拠している一般的なC言語の開発環境であれば、共通して利用できます。

例えば、文字列を印字するにはprintf()関数を使います。プログラムの一番最初の学習に"hellow world"というテキストを表示するサンプルが有名ですが、C言語で画面にテキストを表示するには、このprintf()関数を呼び出します。このとき、printf()関数がどのように作られているかを理解する必要はなく、どのようなパラメータを受け取り、どのような処理を行い、どのような結果を返すのかを理解すれば十分です。printf()関数は、次のように定めています。

printf()関数

int printf(const char *format [, argument]...);

戻り値にはmain()関数と同じようにintキーワードが用いられています。意味は同じで、printf()関数は表示した文字数を表す整数を返します。ただし、エラーが発生した場合は負数を返すと定められています。加えて、この関数はパラメータを受け取ります。const char * という部分は、この関数が受け取るパラメータの値が文字列であることを表しています。format は、このパラメータに与えられた仮の名前で、重要ではありません。

続く[, argument] ...という部分は、formatパラメータに続いて、カンマ , 区切りで任意の数の値をパラメータとして与えることができることを表しています。この部分については後述するので、この場ではprintf()関数に、次のように文字列を与えることで画面に表示できると考えてください。

printf("表示したい任意のテキスト");

このとき、文字列は二重引用符 "で囲みます。C言語は、二重引用符に囲まれているコードを文字列(テキストデータ)として認識します。この部分には、C言語の文法とは無関係に、自由にデータとして利用するテキストを書くことができます。

このように、C言語ではデータをいくつかの種類に区別して扱います。例えば10や100といった値は整数として扱われ、パラメータや戻り値で受け渡しをする場合はintというキーワードを使って整数であることを表しました。同じように、文字列は二重引用符で囲み、受け渡しにはconst char * と書いて値が文字列であることを表します。こうした、整数や文字列といったデータの種類を型と呼びます。printf()関数は、パラメータに文字列を受け取ると宣言されているため、整数を渡すことはできません。型が異なるためです。

printf(100);

上記のコードは、エラーとなってしまいます。100は、文字列ではなく整数型です。

printf("100");

この場合は、二重引用符で囲まれている"100"という文字列なので、問題はありません。そのまま、100という結果が画面に表示されることでしょう。データ型についても、詳細は次回以降にご説明します。