今回のC言語超入門は、第31回から第42回までに解説してきました
「関数の作成、変数の適用範囲、ポインタ、コンパイル前処理、標準ライブラリ、ファイル入出力、コマンドラインからの入力」の各項目について、
ポイントを再整理しながら振り返っていきます。
1. 関数の作成
・ 【C言語超入門(第31回)】関数を作ってみよう
・ 【C言語超入門(第32回)】関数のデータの受け渡し方法について学ぼう
2. 変数の適用範囲
・ 【C言語超入門(第33回)】ローカル変数とグローバル変数の違いを知ろう
・ 【C言語超入門(第34回)】変数の記憶方法の指定をしよう
3. ポインタ
・ 【C言語超入門(第35回)】ポインタの基本的な働きを学ぼう
・ 【C言語超入門(第36回)】文字列とポインタの関係を知ろう
4. コンパイル前処理
・ 【C言語超入門(第37回)】コンパイルの前処理について覚えよう
5. 標準ライブラリ
・ 【C言語超入門(第38回)】標準ライブラリ関数を覚えよう
6. ファイル入出力
・ 【C言語超入門(第39回)】ファイルからの入出力の方法を学ぼう(オープン、クローズ編)
・ 【C言語超入門(第40回)】ファイルからの入出力の方法を学ぼう(1文字の入出力編)
・ 【C言語超入門(第41回)】ファイルからの入出力の方法を学ぼう(文字列の入出力編)
7. コマンドラインからの入力
・ 【C言語超入門(第42回)】コマンドラインから引数を渡してみよう

1. 関数の作成

関数とは、よく利用する処理や、同じ処理を一つの塊としてまとめ、繰り返し利用しやすくしたもので、
C言語のプログラムは、いくつもの関数を寄せ集めて、一つのプログラムとして作り上げていくのが一般的です。
関数を作るメリットには、
・ プログラム全体の流れが分かりやすくなる
・ プログラムの管理が容易になる
・ 作成したプログラムを再利用が簡単になる
などが挙げられます。
関数を作らなくてもC言語のプログラミングは可能ですが、
上記のメリットを享受できることから、関数を使わない理由はありません。
関数の使い方については、以下の記事で解説していますので参考にしてみてください。
・【C言語超入門(第31回)】関数を作ってみよう
・【C言語超入門(第32回)】関数のデータの受け渡し方法について学ぼう

2. 変数の適用範囲

C言語の変数は、変数を定義した場所によって、その変数のスコープ(適用範囲)が決まります。
関数の外で宣言された変数はグローバル変数になり、プログラム内のどこからでも参照でき、
関数の中で宣言された変数はローカル変数になり、変数を宣言した関数の中からのみ参照できます。
また変数には、ローカル変数とグローバル変数という区分けの他に、記憶クラスという分類があり、
大きく分けると自動変数(auto)、外部変数(extern)、静的変数(static)の3つがあります。
・ 自動変数(auto) ・・・ 関数内だけで使用できる変数で、プログラム実行中に変数を格納するメモリ場所が変化する。
・ 外部変数(extern) ・・・ どの関数からも使用できる変数で、プログラム実行中は常に同じメモリ上に存在する。
・ 静的変数(static) ・・・ 関数内だけで使用できる変数で、プログラム実行中は常に同じメモリ上に存在する。
それぞれの変数には特徴がありますので、詳細は以下の記事を参照くださいませ。
・【C言語超入門(第33回)】ローカル変数とグローバル変数の違いを知ろう
・【C言語超入門(第34回)】変数の記憶方法の指定をしよう

3.ポインタ

C言語には「ポインタ」という重要な機能があり、とても簡単に表現するなら、「アドレスを格納した変数」と言えます。
ポインタを上手に使いますと、とてもプログラミングが便利になりますが、
その反面、プログラミングが複雑になり、予想していないプログラムの動作をしてしまう可能性も高まります。
ポインタの概念はC言語初学者にとっては難しく感じる方も多いようですから、
C言語初心者のうちは、無理にポインタを覚えようとしなくても大丈夫です。
なぜなら、ポインタを使わなくても、配列を上手に使うことでプログラミングができるケースは多々あるからです。
以下の記事でポインタについて解説していますので、併せてどうぞ。
・【C言語超入門(第35回)】ポインタの基本的な働きを学ぼう
・【C言語超入門(第36回)】文字列とポインタの関係を知ろう

4.コンパイル前処理

C言語のコンパイラは、C言語プログラムをコンパイルする前に、ファイルの挿入や文字列の置き換えを行ってから、コンパイルを開始します。
このコンパイル前処理の指示はプリプロセッサコマンドで行い、代表的なものとして次の2つがあります。
・ #include ・・・ 指定したファイルを記述した箇所に読み込む
・ #define ・・・ ソースコード内の文字列置き換えを行う
プリプロセッサコマンドの#includeと#defineの詳細については、以下の記事で解説しています。
・【C言語超入門(第37回)】コンパイルの前処理について覚えよう

5.標準ライブラリ

C言語には入出力や文字列処理といった一般的によく利用する機能がありません。
これらはすべて、標準ライブラリ関数として提供されていますので、
標準ライブラリ関数を使いこなせるかが、C言語によるプログラミングの肝にもなります。
ただ、標準ライブラリ関数は多数ありますので、すべて覚えることは現実的ではありません。
実際は、頻繁に使用する関数だけ覚えておけば十分であり、
必要に応じて関数のマニュアルを参照して使うことができれば問題ありません。
主な標準ライブラリ関数については、以下の記事で整理しています。
・【C言語超入門(第38回)】標準ライブラリ関数を覚えよう

5. ファイル入出力

C言語では、ファイルと入出力を行う場合は、まずファイルのオープン処理を行い、ファイル識別子を取得する必要がります。
ファイルのオープン処理はfopen()関数を使い、ファイルの利用が終わったらfclose()関数を使ってファイルをクローズします。
ファイルからデータを入出力するために、C言語では以下の関数が用意されています。
・ fgetc()、getc() ・・・ ファイルから一文字ずつ入力
・ fputc()、putc() ・・・ ファイルに一文字ずつ出力
・ fgets() ・・・ ファイルから一行ずつ入力
・ fputs() ・・・ ファイルに一行ずつ出力
ファイルの入出力というのは基本のパターンが決まっていますから、基本パターンを流用していろいろな処理を作ることができます。
ファイル入出力の使い方については、以下の記事で解説しています。
・【C言語超入門(第39回)】ファイルからの入出力の方法を学ぼう(オープン、クローズ編)
・【C言語超入門(第40回)】ファイルからの入出力の方法を学ぼう(1文字の入出力編)
・【C言語超入門(第41回)】ファイルからの入出力の方法を学ぼう(文字列の入出力編)

7. コマンドラインからの入力

C言語には、キーボードから対話形式でデータを入力する方法や、
ファイルから入力する方法の他に、コマンドラインから入力することができます。
コマンドラインから引数を得るには main(int argc, char *argv[]) という決まり文句がありますので、
このまま覚えておくとよいでしょう。
変数argcには引数の数、変数argv[]には引数の文字列が入ります。
コマンドラインからの入力方法については、以下の記事を参照してくださいませ。
・【C言語超入門(第42回)】コマンドラインから引数を渡してみよう

C言語超入門の第43回まとめ

今回のC言語超入門では、
関数の作成、変数の適用範囲、ポインタ、コンパイル前処理、標準ライブラリ、ファイル入出力、コマンドラインからの入力について、ポイントを整理してきました。
各項目の詳しい内容は以下のページで解説していますので、ご参考にしてくださいませ。
1. 関数の作成
・ 【C言語超入門(第31回)】関数を作ってみよう
・ 【C言語超入門(第32回)】関数のデータの受け渡し方法について学ぼう
2. 変数の適用範囲
・ 【C言語超入門(第33回)】ローカル変数とグローバル変数の違いを知ろう
・ 【C言語超入門(第34回)】変数の記憶方法の指定をしよう
3. ポインタ
・ 【C言語超入門(第35回)】ポインタの基本的な働きを学ぼう
・ 【C言語超入門(第36回)】文字列とポインタの関係を知ろう
4.コンパイル前処理
・ 【C言語超入門(第37回)】コンパイルの前処理について覚えよう
5. 標準ライブラリ
・ 【C言語超入門(第38回)】標準ライブラリ関数を覚えよう
6. ファイル入出力
・ 【C言語超入門(第39回)】ファイルからの入出力の方法を学ぼう(オープン、クローズ編)
・ 【C言語超入門(第40回)】ファイルからの入出力の方法を学ぼう(1文字の入出力編)
・ 【C言語超入門(第41回)】ファイルからの入出力の方法を学ぼう(文字列の入出力編)
7. コマンドラインからの入力
・ 【C言語超入門(第42回)】コマンドラインから引数を渡してみよう
ステップ・バイ・ステップ。焦らず一歩ずつ進んでいきましょう。