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% は避けられると言われるほど重要です🌟