トラック4・🚪はじめての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; が正常終了の報告です。

アプリでこのトピックを学ぶ(無料・登録不要)

確認問題

確認問題 1

Hello, World! の骨格です。空欄に入るものはどれですか。

#include <stdio.h>

int main(____) {
    printf("Hello\n");
    return 0;
}
  1. void
  2. int
  3. stdio
  4. printf
答えを見る

正解:A(void)

int main(void) が標準の形です。(void) は「受け取るもの(引数)は無し」という意味。int は返す値の型なので main の前に書きます。stdio や printf はここには入りません。

確認問題 2

このプログラムの出力はどれですか(/は改行を表します)。

#include <stdio.h>

int main(void) {
    printf("Hello,");
    printf("World!\n");
    return 0;
}
  1. Hello,World!
  2. Hello, World!
  3. Hello,/World!
  4. 何も表示されない
答えを見る

正解:A(Hello,World!)

1つ目の printf には \n が無いので改行されず、次の出力がそのまま続きます。文字列の中に空白も入れていないので Hello,World! とくっつきます。改行したければ printf("Hello,\n"); と書きます。

「はじめてのC」の目次

  1. 開発環境ゼロで始める——このポータルの使い方
  2. Hello, World! を解剖する
  3. main関数と#include
  4. コンパイルエラーと友達になる
  5. printfで画面に出す——書式指定の基本
  6. scanfで入力を受け取る
  7. scanfの罠——入力の恐怖を越える
  8. コメントとコードの整え方

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

完全版の販売ページは準備中です。

ほかのトラック

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

Web版