
C言語入門|C言語の変数初期化を理解しよう:未初期化変数は危険!
C言語を学び始めるとまず出てくるのが「変数の宣言」。
ところが、ただ宣言しただけの変数には “とんでもない落とし穴” が潜んでいるんです…😱💦
その落とし穴こそが 未初期化変数(初期値が決まっていない変数)。
今回は、初心者がつまずきやすい「初期化の大切さ」について、図を使ってやさしく解説していきます✨

🔍 変数を宣言しただけでは「中身はどんな値かわからない」
まずは次のプログラムを見てみましょう!
※Visual Studioでは実行できません。
#include <stdio.h>
int main(void)
{
int number; // 変数を宣言しただけ(中身は不定)
printf("numberの値は %d\n", number); // 値を入れていないのに表示!
return 0;
}これを実行すると…
毎回ちがう数字が出るんです。
例:912384、-50329、128 などなど。
「えっ!? なんで?😳」と思うかもしれませんが、これは C 言語の基本仕様によるものです。
🧠 なぜ毎回違う数字が出るの?
変数を宣言すると、コンピュータはメモリ上の “空いている領域” をひとつ割り当ててくれます。
しかしそのメモリには、
以前のプログラムが使っていたデータの“残りカス”が残っている
ことがあります。
図で表すとこんなイメージ👇

そのため、
- 何が残っているかは わからない。
- 実行するたびに 違う値が入っている。
- もちろん 正しい計算なんてできない!
という危険な状態が発生します💥
これが 未初期化変数は危険! と言われる理由です。
🛠️ 変数は必ず「宣言したらすぐ初期化」しよう
C言語では次のように書くだけで初期化できます👇
int number = 0; // 0で初期化または、
int score;
score = 100; // この代入で初期化と同じ効果どちらを使ってもOKですが、
宣言と同時に初期化 するほうがミスが減るのでおすすめです😊✨
📘 命令(printf)の書式と動作の説明
● printf — 値を画面に表示する命令
書式
printf("書式文字列", 表示したい値);例
printf("%d\n", number);- %d → 整数を表示
- \n → 改行
printf は「値を人間に見える形で出力する」ための標準ライブラリ関数です。
📊 未初期化変数と初期化済み変数の違い
| 変数の状態 | 中身 | プログラムの安全性 |
|---|---|---|
| 未初期化 | 不明(ゴミデータ) | ❌ 危険!バグの温床 |
| 初期化済み | 0 や決められた値 | ◎ 安全・予測可能 |
💡 まとめ
- C言語の変数は 宣言しただけでは中身が不定
- 毎回違うゴミ値が入っていることも
- 予測不能な動作 → 大事故につながる。
- 必ず最初に値を代入して初期化しよう!
初期化は C言語における “基本中の基本”。
書けるだけで、バグの 30% は避けられると言われるほど重要です🌟
