02 変数とデータ型

変数の宣言・代入・命名ルールを学ぶ。


02-1 C言語プログラムの基本形

C言語のすべてのプログラムは main 関数から実行される。
最小限のプログラムは次の形になる。

#include <stdio.h>

int main(void)
{
    return 0;
}
記述意味
#include <stdio.h>画面への出力・キーボード入力を使うためのライブラリを読み込む
int main(void)プログラムの開始点。int は「整数を返す」という意味
return 0;プログラムが正常に終了したことをOSに伝える

02-2 変数とは何か

変数とは、プログラムの実行中にデータを一時的に保存するための、名前付きのメモリ領域である。

int score;    // 「score」という名前の整数型メモリ領域を確保
score = 100;  // その領域に 100 を入れる
✅ 変数を宣言するとは「このサイズのメモリ領域を、この名前で使う」とコンパイラに伝えることである。
確保された領域は、そのプログラムが動作している間だけ有効で、他のプログラムからはアクセスできない。

02-3 変数の宣言と代入

変数を使うには、まずを指定して宣言する。
型によって「何バイトのメモリを確保するか」と「どんな値を入れられるか」が決まる。

int    number;   // 整数型
char   letter;   // 文字型(1文字)
float  height;   // 小数(単精度浮動小数点)

宣言した変数に値を入れるには =(代入演算子)を使う。

number = 10;
letter = 'A';
height = 175.5;

宣言と代入は1行でまとめて書くこともできる(初期化という)。

int    number = 10;
char   letter = 'A';
float  height = 175.5;
📌 大事なルール:変数の宣言は、必ず関数の先頭(最初の処理より前)にまとめて書く。
純粋なC言語(C89)では、処理を始めたあとに変数を宣言することはできない(コンパイルエラーになる)。
使う変数は関数の最初にすべて宣言し、それから処理を書き始める。本資料ではこの書き方で統一する。
/* ✅ 良い例:先頭でまとめて宣言してから処理する */
int main(void) {
    int a;
    int b;
    int wa;

    a  = 3;
    b  = 5;
    wa = a + b;
    printf("%d\n", wa);
    return 0;
}

/* ❌ 悪い例:処理の途中で宣言している(純粋なCではエラー) */
int main(void) {
    int a = 3;
    printf("%d\n", a);
    int b = 5;        /* ← printf の後で宣言しているので × */
    printf("%d\n", b);
    return 0;
}

02-4 = は「代入」であり「等しい」ではない

数学の = は「左辺と右辺が等しい」を意味するが、
C言語の = は「右辺の結果を左辺の変数に入れる」という意味である。

int a;
a = 3 + 2;   // 右辺 3+2 を計算 → 結果 5 を a に代入
⚠ 「等しいかどうか比較する」には ==(イコール2つ)を使う。
=== の混同は頻出バグのひとつ。

02-5 変数名のルール

ルール具体例
使える文字:半角英字・数字・_score, player1, total_amount
先頭は英字または __ 始まりは非推奨)score × 1score
予約語は使用不可× int, return, float
大文字・小文字は別物Scorescore は別の変数
全角文字・空白・記号は使用不可× スコア, × user score, × score!

使える変数名の例

int hp;
int user1;
int player_score;
int totalAmount2025;

使えない変数名の例

int 1stPlace;     // 数字で始まる       → ×
int return;       // 予約語             → ×
int スコア;        // 全角文字           → ×
int user score;   // 空白を含む         → ×
int score!;       // 記号(!)を含む    → ×
int User-Name;    // ハイフン(-)を含む → ×
int total$;       // 記号($)を含む    → ×

02-6 理解度チェック

Q1. 次のうち、正しい変数名として使用できるものはどれか。

解説を表示

正解:ウ

ア:数字で始まる → ×
イ:空白を含む → ×
エ:予約語 → ×
ウ:アンダースコア始まりは非推奨だが文法上は使用可能。

Q2. 次のコードの動作として正しいものはどれか。

int x;
x = 5 + 3;
解説を表示

正解:ウ

5 + 3 の結果である 8 が変数 x に代入される。
= は比較ではなく代入の演算子。

Q3. 次のうち、変数名として使えないものはどれか。

解説を表示

正解:ウ

$ は使用できない記号。他の選択肢はすべてルールを満たしている。

Q4. = の意味として正しいものはどれか。

解説を表示

正解:ウ

右辺を先に評価し、その結果を左辺の変数に保存する。
等価比較(等しいかどうか)には == を使う。