C言語入門 - 開発環境構築からサンプルコード実行まで解説
C言語入門者が学習でつまずかないために身に付けたいC言語の基礎知識と、スムーズにスキルアップできるおすすめの学習方法を紹介していきます。
C言語入門者が学習でつまずかないために身に付けたいC言語の基礎知識と、スムーズにスキルアップできるおすすめの学習方法を紹介していきます。
スキルアップ
2023/02/27 UP
- プログラミング
- SE資格・スキル
- 入門
C言語は汎用性の高さから多くの分野で高い需要のある言語ですが、反面、コーディング時にはメモリ管理のことまで考えなければならないため習得難易度が高く、プログラミング初心者が習得するにはハードルが高い言語でもあります。
今回はC言語入門者が学習でつまずかないために身に付けたいC言語の基礎知識と、スムーズにスキルアップできるおすすめの学習方法を紹介していきます。
基礎知識にはサンプルコードも用意したので、実際に試しながら理解を深めていきましょう。
【入門者向け】C言語とは
1972年に開発され、今も多くの分野で使用されている汎用プログラミング言語です。
AT&T社ベル研究所のDennis.M.Ritchie(デニス・M・リッチー)氏とBrian.W.Kernighan(ブライアン・W・カーニハン)氏によって開発されました。
特徴として、高水準言語と低水準言語の両方の特徴を併せ持つ手続き型言語であることが挙げられます。
登場から半世紀近くが経つ古いプログラミング言語ですが、処理の高速さや実行ファイルの小ささ、動作の安定性などから、多くの基幹系システムやハードウェア的な制約が強いIoT/AIなど最先端の開発分野でも活用されています。
また、後発のC++やJava、C#など、C系と呼ばれるプログラミング言語の始祖でもあり、C系以外にも多くの言語に影響を与えました。
なお、C言語については、こちらの記事も併せてご参照ください。
C言語の開発環境構築
C言語の開発環境を構築する場合は、実行環境にあうコンパイラをインストールし、パスを通す作業が必要になります。
「パスを通す」とは、OSが持っているPATHという環境変数に、プログラム名だけで実行できるように値を追加する作業です。環境変数を設定することによって、本来実行に必要なフルパスを指定する必要がなくなります。
なお、開発環境の構築は初心者にはセットアップやPATHの設定が難しいため、学習用に簡単なプログラムを実行するだけであれば、Web上のプログラム実行用サイトを活用することもおすすめです。まずは簡単なコードを書いてプログラムの入門を学び、ある程度学習を進めてから環境構築をしてもよいでしょう。
MinGWのインストール
MinGW(Minimalist GNU for Windows)は、GNU Compiler Collection(GCC)の開発環境をWindows上に簡単にセットアップしてくれるパッケージです。GCCとは、C言語をはじめとした7種の言語のコンパイラとライブラリを含んだコンポーネントで、ソースコードをコンパイルし、実行できるようにします。
C言語は実行するためにはソースコードをコンパイルする必要があるため、開発にはGCCが必須となります。
MinGW のインストール方法は、以下のとおりです。
1)公式サイトからインストーラーをダウンロードする
公式サイトのURLにアクセスすると実行ファイルが自動的にダウンロードされます。
2)画面の指示にしたがってインストールを行なう
インストールするディレクトリを選択し「Continue」をクリックすると自動的にインストールが始まります。
インストールが完了し「MinGW Installation Manager」が起動したら、mingw32-base-binとmingw32-gcc-g++-binをクリックし、表示されるメニューから「Mark for Installation」をクリックします。
「Installtion」>「Apply Changes」をクリックすると「Schedule of Pending Actions」というウィンドウがポップアップします。「Apply」をクリックするとインストールが開始されます。
完了したら「Close」を押すと、インストール作業はすべて完了です。
パス(PATH)を通す
MinGWでインストールしたgcc(コンパイラ)のパスを通します。
まず、コントロールパネル>システムとセキュリティ>システムの順に開き、「システムの詳細設定」をクリックします。
表示された「システムのプロパティ」で「環境変数」をクリックします。
環境変数のシステム環境変数からPathを選び、編集をクリックします。
環境変数名の編集で新規をクリックし、C:MinGWinと入力します。
これで環境変数の設定は完了です。正しく環境変数が設定されたか確認しましょう。
コマンドプロンプトを起動し、以下のコマンドを入力します。
gcc --version
画面のようにバージョンが表示されれば、正常にパスが通ったことになります。
C言語入門者のための基礎文法解説
C言語で使用される初歩的な基礎文法を見ていきましょう。簡単なサンプルコードを動作させるために理解しておきたいのは、データ型と変数、演算子、関数の書き方、簡単な条件分岐とループ処理です。
この基礎文法を理解して条件分岐のあるループ処理のコードを書けるようになれば、入門をクリアしたレベルといえます。
データ型
データ型とは、変数や関数の戻り値などで、プログラムが実際に扱う「値」の形式を指します。データ型を指定することによって、その値をプログラムの中でどのように扱うかを判断します。
void |
型なし |
---|---|
char |
文字 |
int |
整数 |
float |
単精度浮動小数点数 |
double |
倍精度浮動小数点数 |
struct |
構造体 |
union |
共用体 |
enum |
列挙型 |
変数と演算子
数値 |
+ - * / % ++ -- |
---|---|
ビット |
& | ^ ~ << >> |
代入 |
= += -= *= /= %= &= |= ^= <<= >>= |
比較 |
== != < <= > >= |
論理 |
&& || ! |
関数
C言語では関数は 型名 関数名(引数){処理} という形になります。
以下のサンプルは、型名にはvoidを指定し、関数名がtestFuncという関数を定義しています。
void testFunc() { }
条件分岐
C言語の条件分岐も、他の言語でも一般的なif文とほぼ同じ構造となっています。
以下のサンプルでは numが0の場合、5以下の場合、それ以外で条件分岐させています。
int num = 0; if (num == 0) { printf("This is 0 "); } else if (num < 5) { printf("This is UNDER 5 "); } else { printf("This is OVER 5 "); }
ループ
if文同様、ループ構文も他の言語のwhile文と似ています。
以下のサンプルは num が5未満の間ループ処理を続け、現在の値を出力しながら1ずつ加算しています。
int num = 0; while (num < 5) { printf("This is %d ",num); num = num + 1; }
C言語の入門用サンプルを実行してみよう
それではここまでの基礎的な構文を踏まえて、HelloWorldとif、whileを使用したサンプルコードを解説していきましょう。
サンプルコードはコピーペーストで使用できます。テキストエディタにコードをコピーし、拡張子を.cにして保存してください。また、ソースコードを保存するフォルダは任意で構いませんが、今回のサンプルではそれぞれhelloとifwhileというフォルダを作成しています。
まずはC言語で Hello World
以下のサンプルコードを保存して、コマンドプロンプトで実行してみましょう。
#includeint main(void) { printf("Hello World "); return 0; }
コードの解説
1行目は標準Cライブラリを読み込むためのコードです。main 関数はプログラム実行時に最初に呼ばれる関数で、ここではint型で0を返すようにしています。
ではコマンドプロンプトでコンパイルし、実際に実行します。まずコマンドプロンプトで先程のコードを保存したフォルダまで移動し、以下のコマンドを実行します。
gcc hello.c -o hello.exe
-o以降は任意のファイル名を指定するためのコマンドであるため、特にファイル名の指定をしない場合は省略して構いません。
コマンドを実行したあと、フォルダにhello.exeファイルが作られたことを確認しましょう。
続いてexeファイルを実行します。
コマンドプロンプトにファイル名「hello.exe」を入力してください。以下の画面のようにHello Worldと表示されれば、コンパイルと実行は成功しました。
C言語でifとwhileを使ったサンプルコード
最後に、ifとwhileを組み合わせた、少し複雑なサンプルコードをご紹介します。
#includeint main() { int num = 0; while (num < 10) { if (num == 0) { printf("This is 0 "); } else if (num < 5) { printf("This is UNDER 5 "); } else { printf("This is OVER 5 "); } num = num + 1; } }
コードの解説
前項で解説したifとwhileを組み合わせて numが10未満の間はループ処理を行ない、numが0の場合、5未満の場合、それ以外の場合の3パターンに分けて出力を変化させるプログラムです。
Hello Worldと同じようにソースコードを保存し、コンパイルします。コンパイル後、ファイルを実行すると、以下のような処理結果が表示されます。
C言語入門者におすすめな学習方法
C言語は歴史のあるプログラミング言語であり、学習方法のバリエーションが多いのも特徴の一つです。オンライン・オフラインともに資料が充実し、テキストや講座が豊富にあるため、自分のレベルと学び方にあった方法を選択できます。コミュニティも多いので、実際に自分で書いたコードを公開してフィードバックを受けながら、実践的なスキルアップを目指すことも可能です。
一方で、C言語は構造が難しく習得難易度の高い言語です。そのため、まったくプログラミング経験のない初心者は、学習初期で挫折しやすい言語でもあります。
そこで、経験の度合いに合わせておすすめの学習方法をご紹介します。
本・参考書などを参考にコーディングしていく
他のプログラミング言語である程度経験があり、プログラミングが初めてではないという人におすすめなのは、書籍などを参考に自分でプログラムを書きながら覚える方法です。
機能や処理方法、効率の良いコーディングの習得は、実際にある程度の目標を持って自分で作成し、コミュニティなどでコードを公開して評価を受けるのが最短です。
Raspberry Piなどを活用して、実用性のあるプログラムを構築していくとより習得が早くなるでしょう。
学習サイト・動画(無料セミナー、動画サイトなど)
プログラミング自体が初めてという人におすすめなのは、C言語学習用の動画や、学習サイトの活用です。C言語は人気が高いため、学習方法を解説したサイトや動画講座も豊富にあります。無料で視聴できるものが多いため、まずは一通り視聴して解説どおりに動かして見るところから始めてみましょう。
C言語プログラミングに挑戦しよう
C言語は関数や構造体といった独自概念やルールなど覚える事柄が多く、習得難易度は高い部類に入ります。初めてプログラミングに触れる人にとっては、簡単な処理を実行するだけでもハードルが高い言語です。
しかし、他の言語と比較すると歴史が長い分、関連書籍や学習サイトも多く、個人でも学習のしやすい環境を整えやすいのがメリットでもあります。C言語はハードウェア制御に用いられることも多い言語なので、Raspberry Piのようなキットを使用して実際に手を動かしながら学習してみるのも一つの方法です。