C/C++の基礎

Hello WorldとC・C++プログラムの構造

このレッスンでは、CとC++で書いた最も短い完全なプログラムを比べ、プログラムの基本的な構造を学びます。

はじめに

CとC++のプログラムは、どちらもmain関数から実行が始まります。構造は似ていますが、画面にデータを表示するのに使う標準ライブラリが違います。Cはstdio.hライブラリのprintf関数を、C++はiostreamライブラリのstd::coutオブジェクトを使います。

大切なポイント

  • コンパイラの警告(compiler warning)を有効にして、すべての警告を直しましょう。
  • それぞれの値のデータ型と寿命(lifetime)をしっかり理解しましょう。
  • 入力データと配列のインデックスの範囲は必ずチェックしましょう。

CとC++のコード例

C
実行 →
main.c
#include <stdio.h>

int main(void) {
    printf("Hello from C!\n");
    return 0;
}
実行結果
Hello from C!
C++
実行 →
main.cpp
#include <iostream>

int main() {
    std::cout << "Hello from C++!\n";
    return 0;
}
実行結果
Hello from C++!

CとC++の比較

#includeの行は、コンパイルの前に必要なライブラリをプログラムに取り込みます。Cのprintfは指定した書式どおりに文字列を表示し、C++では演算子<<でデータをstd::coutに送り、コンパイラが型を自動でチェックします。mainの最後のreturn 0は、プログラムが正常に終了したことをOSに伝えます。

C

Cは小さな手続き型の関数を使い、データがメモリ上でどう表されるかをそのまま見せます。

C++

C++は低レベルの操作もできるまま、ライブラリの型やより安全な抽象化を加えます。

発展問題

両方のバージョンを実行し、コードを書き換えて、それぞれの言語がもたらす安全性の違いを観察しましょう。

  • 不正な入力や境界の値で試しましょう。
  • 警告を増やすフラグ-Wall -Wextra -Wpedanticを付けてコンパイルしましょう。
  • 共通の宣言はヘッダーファイルに、実装は別のファイルに分けましょう。

チャレンジで練習する

このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。

すべてのチャレンジ