
C言語の基本|C言語を動かしてみる
まずは書いて、コンパイルして、実行する。C言語の最初の一歩を手で動かして体験しよう。
開発環境の準備ができたら、いよいよC言語のプログラムを実際に動かしてみます。
ここから先は、最初からすべての仕組みを完璧に理解しようとしなくても大丈夫です。まずは、短いプログラムを書き、コンパイルし、実行して、画面に結果が表示されるところまで体験することが大切です。
C言語は、ソースコードを書いただけではそのまま動きません。人間が読める形で書いたソースコードを、コンピュータが実行できる形へ変換する必要があります。その流れの中で、コンパイル、リンク、実行という工程が登場します。
最初は難しく感じるかもしれませんが、流れを一度つかむと、その後の学習がかなり進めやすくなります。変数、条件分岐、繰り返し、関数などは、この基本の流れを体験したあとで、少しずつ積み重ねていけば大丈夫です。
C言語を動かす前に知っておきたいこと
C言語の学習では、いきなり文法を細かく覚えるよりも、まず「Cプログラムはどうやって完成して動くのか」を見ておくと理解しやすくなります。
C言語のプログラムは、次のような流れで実行できる形になります。
| 項目 | 役割 | ここでのポイント |
|---|---|---|
| ソースコード | 人が読むために書くプログラム | VS Codeなどで作成する |
| コンパイル | ソースコードを機械に近い形へ変換する処理 | GCCなどのコンパイラーが担当する |
| オブジェクトファイル | コンパイル後にできる中間ファイル | まだ単体では実行できない |
| リンク | 必要な部品やライブラリを結合する処理 | 実行ファイルを作る仕上げ |
| 実行ファイル | 実際に起動できるファイル | Windowsでは .exe になることが多い |
| 実行 | 実行ファイルを動かすこと | コマンドプロンプトなどで確認する |
初心者のうちは、コンパイルとリンクをまとめて「ビルド」と呼ぶ場面に出会うこともあります。
ただ、学習の最初に「コンパイルは変換」「リンクは結合」と軽く分けて知っておくと、エラーが出たときに原因を考えやすくなります。
図1:C言語プログラムが動くまでの全体像

この図から分かること
C言語のプログラムは、書いたらすぐに実行できるわけではありません。ソースコードを作成し、コンパイルで変換し、リンクで必要な部品と結合して、実行ファイルを作ります。その実行ファイルを起動して、はじめて結果を確認できます。この流れを体験することが、C言語学習の最初の大きな一歩です。
ソースコードを記述する
最初の作業は、C言語のソースコードを書くことです。
VS Codeなどのテキストエディターを使い、ファイル名の最後に .c を付けて保存します。たとえば、first_step.c のような名前にします。
ソースコードは、人間が読める形で書かれたプログラムです。
この段階では、コンピュータが直接実行できるものではありません。いわば、これから実行ファイルを作るための設計図のようなものです。
| 項目 | 意味 | 補足 |
|---|---|---|
| ソースコード | C言語で書かれたプログラム本文 | 人が読める形で書く |
| ソースファイル | ソースコードを保存したファイル | 例: first_step.c |
拡張子 .c | C言語ファイルであることを示す | ファイル名の最後に付ける |
| テキストエディター | コードを書くためのソフト | VS Codeなどを使う |
ここで大切なのは、ソースコードはまだ「実行できるファイル」ではないという点です。
C言語では、ソースコードを書いたあとにコンパイルという作業が必要になります。
コンパイルする
コンパイルは、C言語で書いたソースコードを、コンピュータが扱いやすい形へ変換する作業です。
この処理を行うソフトをコンパイラーと呼びます。WindowsでC言語を学ぶ場合、GCCを使うことが多いです。
コンパイルでは、ソースファイルからオブジェクトファイルと呼ばれる中間ファイルが作られます。
ただし、このオブジェクトファイルはまだ途中の状態です。そのまま実行できるわけではありません。
| 項目 | 意味 | 補足 |
|---|---|---|
| コンパイル | ソースコードを変換する処理 | コンパイラーが担当する |
| コンパイラー | コンパイルを行うソフト | 例: GCC |
| 機械語に近い形 | コンピュータが扱いやすい命令形式 | 人間には読みにくい |
| オブジェクトファイル | コンパイル後の中間ファイル | 例: first_step.o |
| コンパイルエラー | 文法ミスなどで変換できない状態 | セミコロン忘れなどで起きる |
初心者の方は、コンパイルという言葉だけで難しく感じるかもしれません。
まずは「C言語で書いた文章を、コンピュータ向けの形に変換する作業」と考えれば大丈夫です。
リンクする
リンクは、コンパイルで作られたオブジェクトファイルに、必要なライブラリなどを結合して、実行ファイルを作る作業です。
この処理を行うソフトをリンカーと呼びます。
たとえば、画面に文字を表示する printf は、標準ライブラリの機能を使っています。
自分で書いたソースコードだけではなく、あらかじめ用意されている部品も組み合わせることで、実行できるプログラムが完成します。
| 項目 | 意味 | 補足 |
|---|---|---|
| リンク | 必要な部品を結合する処理 | 実行ファイル作成の仕上げ |
| リンカー | リンクを行うソフト | ビルド工程の一部 |
| ライブラリファイル | 便利な機能がまとまった部品集 | 画面出力などで使われる |
| 実行ファイル | 実際に起動できるファイル | Windowsでは .exe になりやすい |
| リンクエラー | 必要な部品が見つからない状態 | 関数未定義などで発生する |
GCCで gcc first_step.c -o first_step のように実行すると、内部ではコンパイルとリンクがまとめて行われます。
学習の最初は、コマンド1つで実行ファイルまで作れると考えて大丈夫ですが、裏側では「変換」と「結合」が行われていることを知っておくと理解が深まります。
図2:コンパイルとリンクの役割の違い

この図から分かること
コンパイルは、C言語のソースコードをコンピュータが扱いやすい形へ変換する工程です。リンクは、その変換後の部品にライブラリなどを結合して、実行できるファイルを作る工程です。GCCのコマンドではまとめて行われることが多いですが、役割を分けて理解しておくと、コンパイルエラーとリンクエラーの違いも見えやすくなります。
実行する
リンクによって実行ファイルが作られたら、最後にCLIで実行します。
Windowsでは、コマンドプロンプトで実行ファイル名を入力して起動します。
ここでようやく、画面に文字が表示されたり、計算結果を確認できたりします。
プログラミング学習では、実行して結果を見て、必要なら修正して、また実行するという流れを何度も繰り返します。
| 項目 | 意味 | 補足 |
|---|---|---|
| 実行 | 実行ファイルを起動すること | 結果を確認する段階 |
| CLI | 文字で命令を入力する画面 | コマンドプロンプトなど |
| 実行結果 | プログラムの出力内容 | 画面表示や計算結果など |
| 確認 | 期待どおりに動いたかを見る | 学習ではとても大切 |
最初は、画面に短い文字が表示されるだけでも十分です。
自分で書いたプログラムが動き、結果が表示される体験は、C言語学習の土台になります。
C言語プログラム作成の流れ
ここまでの流れを、4つのステップとして整理すると次のようになります。
| 手順 | 作成・利用するもの | 処理内容 | 使用ソフト |
|---|---|---|---|
| 1 | ソースファイル(xxx.c) | ソースコードを書く | VS Codeなど |
| 2 | オブジェクトファイル(xxx.o) | コンパイルする | GCCなど |
| 3 | 実行ファイル(xxx.exe) | オブジェクトファイルとライブラリをリンクする | リンカー |
| 4 | 実行結果 | 実行ファイルを動かす | コマンドプロンプトなど |
この流れを毎回意識すると、C言語の学習がかなり整理しやすくなります。
書く、変換する、結合する、動かす。この順番をまずは大きくつかみましょう。
ライブラリファイルとは何か
ライブラリファイルは、よく使う機能をあらかじめまとめた部品集のようなものです。
たとえば、画面に文字を表示する処理や、文字列を扱う処理を毎回ゼロから作るのは大変です。そこで、C言語ではよく使う機能がライブラリとして用意されています。
| たとえ | C言語での意味 |
|---|---|
| 工具箱 | 便利な機能が入っている |
| 部品棚 | 必要な機能を選んで使える |
| 共通パーツ | 毎回作り直さなくてよい |
| 料理道具 | 材料だけでなく道具も使って完成させる |
初心者のうちは、ライブラリを難しく考えすぎなくて大丈夫です。
まずは、ライブラリは便利な機能のまとまりであり、リンクによって自分のプログラムと結びつけられるもの、と考えておきましょう。
Windows 11・VS Code・GCCの役割
C言語を動かす環境では、いくつかのソフトや道具が登場します。
それぞれの役割を分けて覚えると、混乱しにくくなります。
| 項目 | 役割 | 学習でのメリット |
|---|---|---|
| Windows 11 | 作業する土台となるOS | 利用者が多く情報を探しやすい |
| VS Code | ソースコードを書くエディター | 見やすく、補助機能が使いやすい |
| GCC | C言語をコンパイルするコンパイラー | C言語学習でよく使われる |
| コマンドプロンプト | コマンドを入力するCLI | コンパイルと実行の流れを確認しやすい |
初心者の方は、VS Code、GCC、コマンドプロンプトの役割が混ざりやすいです。
VS Codeは書く場所、GCCは変換する道具、コマンドプロンプトは命令を入力して結果を見る場所、と分けて考えると分かりやすくなります。
最初の実行を確認するCプログラム
ファイル名:first_step.c
#include <stdio.h>
int main(void)
{
/* はじめてのC言語実行メッセージを表示する */
printf("C言語の最初の一歩です。\n");
printf("ソースコードを書いて、コンパイルして、実行しました。\n");
/* プログラムを正常終了する */
return 0;
}実行結果の例
C言語の最初の一歩です。
ソースコードを書いて、コンパイルして、実行しました。このプログラムは、C言語を最初に動かしてみるための短い例です。
処理はシンプルですが、C言語の基本構造であるヘッダの読み込み、main関数、コメント、printf、returnが含まれています。
| 記述 | 役割 | 詳しい説明 |
|---|---|---|
| #include <stdio.h> | 標準入出力の準備 | printf を使うために必要なヘッダファイルを読み込む |
| int main(void) | プログラムの開始地点 | C言語ではmain関数から実行が始まる |
| { } | 処理の範囲を示す | main関数の中身を囲む |
| /* ... */ | コメント | 説明を書くための文で、実行には影響しない |
| printf(...) | 文字を表示する | 画面に文字列を出力する関数 |
| \n | 改行 | 次の表示を新しい行にする |
| return 0; | 正常終了を返す | 問題なく終わったことを表す |
特に大切なのは、printf だけではありません。
#include <stdio.h> は printf を使う準備であり、return 0; はプログラムが正常に終わったことを示します。最初は形として覚え、少しずつ意味を理解していけば大丈夫です。
実際の作成から実行までの手順
ここでは、Windows 11、VS Code、GCC、コマンドプロンプトを使う前提で、first_step.c を動かす流れを確認します。
| 手順 | 操作内容 | 例 |
|---|---|---|
| 1 | VS Codeでソースコードを作成して保存する | first_step.c |
| 2 | コマンドプロンプトを開く | 作業フォルダーへ移動する |
| 3 | コンパイルする | gcc first_step.c -o first_step |
| 4 | 実行する | first_step |
| 5 | 結果を確認する | メッセージが表示される |
コンパイルするときは、次のコマンドを入力します。
gcc first_step.c -o first_stepgcc first_step.c -o first_step
実行するときは、次のように入力します。
first_stepWindowsでは、実際には first_step.exe という実行ファイルが作成されます。
ただし、コマンドプロンプトでは first_step と入力して実行できる場合があります。
図3:保存から実行結果確認までの操作手順

この図から分かること
C言語を動かすときは、VS Codeで書いて保存し、コマンドプロンプトでGCCを使ってコンパイルし、作成された実行ファイルを起動します。保存、コンパイル、実行、結果確認の順番を毎回意識すると、どこで問題が起きたのかも見つけやすくなります。
コンパイルコマンドを分解する
gcc first_step.c -o first_step は、最初は少し長く感じるかもしれません。
しかし、分解すると意味はシンプルです。
| 部分 | 意味 | 役割 |
|---|---|---|
| gcc | GCCを使う命令 | コンパイラーを起動する |
| first_step.c | 入力ファイル | コンパイルしたいCソースを指定する |
| -o | 出力ファイル名を指定するオプション | 作成する実行ファイル名を決める |
| first_step | 出力される実行ファイル名 | 実行時に使う名前 |
つまり、このコマンドは「first_step.c をGCCで処理して、first_step という名前の実行ファイルを作ってください」という意味になります。
よくあるつまずきポイント
最初の実行では、うまくいかないことがあっても自然です。
よくある原因を先に知っておくと、落ち着いて対応できます。
| 症状 | よくある原因 | 対応 |
|---|---|---|
| gccが使えない | GCCのPath設定が未完了 | 環境変数のPathを確認する |
| 実行ファイルが作られない | コンパイルエラーがある | エラーメッセージの行番号を見る |
| 変更した内容が反映されない | 保存前にコンパイルした | 保存してから再コンパイルする |
| 日本語が文字化けする | 文字コード設定が合っていない | cmd側の文字コードを確認する |
| ファイルが見つからない | 作業フォルダーが違う | cd で正しいフォルダーへ移動する |
| 実行できない | 実行ファイル名を間違えている | 作成されたファイル名を確認する |
エラーは、失敗の印ではなく、どこを直せばよいかを教えてくれるヒントです。
最初は1つずつ確認しながら、保存、コンパイル、実行の流れに慣れていきましょう。
登場した用語の整理
ここまでに出てきた用語を整理しておきます。
| 項目 | 詳しい意味 | 学習上のポイント |
|---|---|---|
| C言語 | 古くから使われている基本的なプログラミング言語 | コンピュータの仕組みを学びやすい |
| ソースコード | 人が読めるプログラムの記述内容 | まずここを書く |
| ソースファイル | ソースコードを保存した .c ファイル | 例: first_step.c |
| コンパイル | ソースコードを機械向けの形式へ変換する処理 | コンパイラーが担当する |
| コンパイラー | コンパイルを行うソフト | 例: GCC |
| オブジェクトファイル | コンパイル後の中間成果物 | まだ実行できない |
| リンク | オブジェクトとライブラリを結合する処理 | 実行ファイル作成の仕上げ |
| リンカー | リンクを行うソフト | コンパイラーと連携して動くことが多い |
| ライブラリファイル | 便利な機能が入ったファイル | printf などを使う土台 |
| 実行ファイル | 実際に起動できる最終ファイル | Windowsでは .exe になりやすい |
| CLI | 文字で命令を入力する画面 | コマンドプロンプトなど |
| VS Code | ソースコードを書くエディター | 学習用として使いやすい |
| Windows 11 | 今回の説明対象OS | 操作手順の前提環境 |
C言語の最初の一歩で大切なのは、完璧に理解することよりも、一度最後まで動かしてみることです。
短いプログラムでも、自分で書いて、コンパイルして、実行して、画面に結果が出る。この体験が、これから変数や条件分岐、繰り返しを学ぶためのしっかりした土台になります。
