C言語の「変数」完全ガイド|初心者でも理解できる基礎・使い方・落とし穴まで徹底解説

広いオフィスのデスクトップモニターにC言語のプログラムコードが表示されている様子。変数を解説する入門記事のイメージ。 スキルアップ・学習

この記事の監修・執筆者
TAKUYA FUJIMOTO(ITエンジニア/運営者)

IT業界歴30年以上。
業務系システム開発・基幹システム・組み込み系など幅広い現場経験をもとに、 初心者のつまずきポイントを押さえてC言語をわかりやすく解説します。

C言語を学び始めたとき、最初に覚えるべき超重要テーマが「変数」です。
変数が理解できると「計算する」「値を保存する」「条件分岐する」「繰り返す」といった基本操作が一気につながります。

逆に、変数の理解があいまいなままだと、エラーや意図しない動作が増えて学習が停滞しがちです。

この記事では、プログラミング完全初心者でも理解できるように、 「変数とは何か」から「型の選び方」「初期化」「スコープ」「よくあるミス」まで、実例コードつきで体系的に解説します。


明るいオフィスで働く日本人の新人ITエンジニア男女。背景で他のエンジニアが作業している様子。
ITエンジニアの笑顔

変数とは、プログラムの中でデータを一時的に保存するための名前付きの箱です。
箱には「数値」や「文字」などを入れられます。

C言語では、箱に入れられるデータの種類をデータ型で指定します。

たとえば「年齢」を扱うなら整数が自然なので int、「身長」なら小数が必要なので double、 「1文字」なら char といった具合です。

C言語では、変数を使う前に必ず宣言(せんげん)します。
宣言は「型 + 変数名」で書きます。

#include <stdio.h>

int main(void) {
  int age;         /* 整数の変数 */
  double height;   /* 小数の変数 */
  char grade;      /* 文字の変数 */
  return 0;
}

宣言をすると、プログラム実行時にその型に応じたメモリ領域が確保されます。

ここがC言語らしいポイントで、後々ポインタや配列を理解するときの土台になります。

変数宣言と同時に最初の値を入れることを初期化といいます。
初心者のうちは、可能な限り「宣言=初期化」するクセを付けるとバグが激減します。

int age = 25;
double weight = 60.5;
char initial = 'J';

初期化をしない場合、変数には不定値(たまたま残っていた値)が入る可能性があります。

「何も入れていないのに動いた/動かなかった」という現象の原因になりやすいので注意してください。

  • 使えるのは「英字・数字・_(アンダースコア)」
  • 数字で始めてはいけない(例:1st はNG)
  • 予約語は使えない(例:int, if, for など)
  • 大文字小文字は区別される(Countcount は別)

命名は読みやすさに直結します。

totalScoreuser_age など、「何が入っているか一目で分かる名前」を意識すると、後から自分が助かります。

初心者のうちは、まず次の4つを押さえれば十分です。

用途
char1文字'A', 'x'
int整数10, -3
float小数(単精度)3.14f
double小数(倍精度)3.14

ポイントは、float の小数リテラルには f を付けること(3.14f
付けないと double 扱いになって、警告や意図しない変換の原因になることがあります。

4つの基本データ型をすべて使った例

以下は、charintfloatdouble の4つをすべて使ったサンプルコードです。

#include <stdio.h>

int main(void) {

    char grade = 'A';          /* 文字型 */
    int score = 85;            /* 整数型 */
    float height = 170.5f;     /* 単精度小数(fを忘れない) */
    double average = 88.75;    /* 倍精度小数 */

    printf("成績: %c\n", grade);
    printf("点数: %d\n", score);
    printf("身長: %.1f cm\n", height);
    printf("平均: %.2f\n", average);

    return 0;
}

ポイント:
float には f を付ける
%c は文字、%d は整数、%f は小数
・表示桁数は %.2f のように調整できる(小数点以下第2位までを表示)

実行結果

変数の価値は「計算結果を保持できる」ことにあります。
定番の合計と平均を見てみましょう。

#include <stdio.h>

int main(void) {
  int x = 10;
  int y = 20;

  int sum = x + y;
  double avg = (double)sum / 2;  /* キャストで小数にする */

  printf("合計: %d\n", sum);
  printf("平均: %.2f\n", avg);

  return 0;
}

(double)sum のように型を変換することをキャストといいます。

整数同士の割り算は整数になるため、平均を小数で出したい場合はキャストが有効です。

実行結果

変数には「どこで使えるか(スコープ)」と「いつまで存在するか(寿命)」があります。

まずは次の2つを覚えればOKです。

関数の中や { } の中で宣言した変数は、基本的にその範囲だけで使えます。
範囲を抜けると消えます。

if (1) {
  int a = 10; /* ここでだけ有効 */
}
/* ここでは a は使えない */

関数の外で宣言した変数は、ファイル内のどこからでも使えます。

便利ですが、変更箇所が追いにくくなりバグの原因になりやすいので、初心者のうちは多用しないのがおすすめです。

  • 初期化忘れ:不定値で動作が不安定になる
  • 型の選択ミス:小数なのに int を使って丸めてしまう
  • スコープの勘違い:ブロック外の変数が使えずエラーになる
  • printfの書式指定子ミス%d%f を混同する

特に printf は書式指定子が合っていないと表示が崩れたり、環境によっては不具合の原因になります。

まずは「int は %d」「double は %f」を確実に覚えましょう。

明るく清潔なオフィスでデスクトップパソコンにC言語のコードを入力する日本人の新人ITエンジニア。
若いエンジニアのオフィス風景

C言語の変数は「型」「初期化」「スコープ」という3点を押さえるだけで、理解が大きく前進します。

変数が分かると、配列・ポインタ・関数といった次の学習もスムーズになります。

次は「配列」→「ポインタ」の順で学ぶと理解がつながりやすいので、シリーズ化して学習するのがおすすめです。

次に読むおすすめ

明るいオフィスでC言語のコードを表示したディスプレイに向かいプログラミングを行う日本人の新人ITエンジニア男女。
オフィスでプログラミングするエンジニア
Q
変数とは何ですか?
A

データを一時的に保存する「名前付きの箱」です。
C言語では型を指定して宣言します。

Q
変数は初期化しないとダメですか?
A

必須ではありませんが推奨です。
初期化しないと不定値になり、バグの原因になりやすくなります。

Q
int と double はどう使い分けますか?
A

整数は int、小数を扱うなら double を使います。
平均など小数が必要な計算では double が便利です。

Q
ローカル変数とグローバル変数の違いは?
A

ローカルは宣言したブロック内だけで有効、グローバルは広い範囲で使えますが管理が難しいため多用は注意です。

Q
printf の %d と %f の違いは?
A

%d は int(整数)、%f は double/float(小数)を表示するための書式指定子です。

コメント

タイトルとURLをコピーしました