C言語学習ポータル(無料版) 学習コンテンツ はじめてのC Hello, World! を解剖する

🚪 はじめてのC

Hello, World! を解剖する

無料公開版に収録・読む目安 12分

🎯 Hello, World! の5行それぞれの役割を自分の言葉で説明できる

世界中のプログラマが、新しい言語を触るとき最初に画面へ出す言葉があります。「Hello, World!」です。1978年のK&R『プログラミング言語C』から続く伝統で、いまも入門の儀式になっています。

まずは全文です。

#include <stdio.h>

int main(void) {
    printf("Hello, World!\n");
    return 0;
}

たった5行ですが、ここにCの骨格がひととおり入っています。1行ずつ解剖します。

1行目 #include <stdio.h>

「画面に出す道具を借りてくる」という指示です。stdio.h は standard input/output header(標準入出力のヘッダファイル)の略。これが無いと printf は使えません。

3行目 int main(void) {

プログラムの入口になる関数です。実行するとOSはまず main を探し、ここから動き始めます。int は「終わるとき整数を1つ返す」、(void) は「受け取るものは無し」という意味。{ から } までが main の中身です。

4行目 printf("Hello, World!\n");

printfは文字を画面に出す関数です。" " で囲んだ部分がそのまま出ます。末尾の \n は改行を表すエスケープシーケンス。行末の ;(セミコロン)は「この文はここで終わり」という印です。

5行目 return 0;

main を終了し、OSに 0 を返します。0は「正常に終わりました」の合図です。

動く例——行を増やしてみる

#include <stdio.h>

int main(void) {
    printf("こんにちは。\n");
    printf("Cの世界へようこそ。\n");
    printf("ここが1行目からの旅の出発点です。\n");
    return 0;
}

printf を並べれば、書いた順番に出力されます。プログラムは上から下へ、1行ずつ実行される——これがすべての土台です。

Hello, World! の5行それぞれに吹き出しで役割を書き込んだ解剖図
Hello, World! の5行それぞれに吹き出しで役割を書き込んだ解剖図

罠・注意

セミコロン忘れ。 初心者のエラー第1位です。} や #include の行には付けません。文の終わりにだけ付けます。

大文字小文字は別物。 Printf や Main は通りません。Cは大文字と小文字を厳密に区別します。

全角の空白と記号。 日本語入力のまま書いた全角空白や ” は、コンパイラには意味不明な文字です。文字列の中身以外は半角で書きます。

\n を忘れると改行されない。 次の出力とくっついて表示されます。出力が変だと思ったら、まずここを疑います。

ビット意味が分からないまま写しても大丈夫。3回書けば、目より先に指が形を覚えるよ。

まとめ

#include <stdio.h> で入出力の道具を借り、int main(void) が実行の入口になり、{} の中身が上から順に実行されます。printf("…\n"); で表示し、\n が改行、; が文の終わり、最後の return 0; が正常終了の報告です。

要点まとめ

アプリで演習問題まで解く(無料・登録不要)

この項目に出てくる用語

ヘッダファイルへっだーふぁいる

関数の宣言など、複数のファイルで共有したい情報をまとめた.hという拡張子のファイルのこと。#includeで取り込んで使う。#include <stdio.h>のstdio.hが、まさにこのヘッダファイルにあたる。

関数かんすう

一連の処理に名前を付けてひとまとめにしたもののこと。同じ処理を何度も書かずに、名前を呼ぶだけで再利用できる部品にあたる。printfやscanfも、標準ライブラリがあらかじめ用意してくれている関数の一種。

printfぷりんとえふ

文字や数値を書式指定に従って画面に表示する標準ライブラリの関数のこと。C言語で最も使う頻度が高い関数のひとつに数えられる。%dで整数、%fで小数、%sで文字列というように、値の種類ごとに書式を使い分ける。

エスケープシーケンスえすけーぷしーけんす

バックスラッシュ\で始まる特殊な文字表現のこと。\nで改行、\tでタブを表すなど、文字だけでは表せない働きを表現できる。画面上には見えない改行やタブといった働きを、文字として書き表す手段になる。

同じトラックのほかの項目

開発環境ゼロで始める——このポータルの使い方環境構築なしで学習を始める手順と、このポータルの3つの使い方(読む・追う・解く)が分かる main関数と#includemainが実行の入口であること、#includeがヘッダファイルを取り込む指示であることを説明できる コンパイルエラーと友達になるエラーメッセージ1行を分解して読み、最初の1件から順に直せるようになる printfで画面に出す——書式指定の基本書式指定子とエスケープシーケンスを使い分け、思いどおりの形で値を表示できる scanfで入力を受け取るscanfで数値を読み取り、&の意味と戻り値の確認までできる scanfの罠——入力の恐怖を越えるscanfの3大トラップ(&忘れ・型違い入力・改行残り)の症状と対処を説明できる コメントとコードの整え方2種類のコメントを使い分け、読みやすい書き方の基本ルールを身につける
‹ 開発環境ゼロで始める——このポータルの使い方 main関数と#include ›

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る

📚 姉妹教材:手を動かして覚える Linux 教材 — Linuxとインフラの仕組みを地図で学ぶ

Web版 / BOOTH