変数

変数(へんすう、variable)とは、プログラムのソースコードにおいて、扱われるデータを 任意の期間記憶し、必要な際に利用することの出来るようにしたデータを格納しておく領域、 またはその個々の領域に付けられた識別子のことです。


変数宣言・代入・参照

プログラムにおいて変数を扱うための主要な操作は、宣言・代入・参照の三つがあります。

  1. 宣言
    変数を使用するには前もって宣言をする必要があります。(必要ならば初期化します)
    ※ 変数を初期化しない場合、エラーでコンパイルが通らない可能性がありますが...
  2. 代入
    変数にデータを格納することを代入と呼びます。
  3. 参照
    変数に格納されたデータを使用することを参照と呼びます。

変数宣言・代入・参照の記述例

// 変数宣言・代入・参照 program in C.
#include <stdio.h>
        
int main(int argc, char *args[])
{    
    int a = 2, b = 5, c = 0;	// 整数型を初期化して宣言
    char d = 0x00;              // 文字型を初期化して宣言
            
    printf("代入前 > a:%d,b:%d,c:%d,d:%c\n", a, b, c, d);

    a = a + 1;
    c = a * b;
    d = 'D';

    printf("代入後 > a:%d,b:%d,c:%d,d:%c\n", a, b, c, d);

    return 0;
}

変数の値をprintf()で表示するために、%dや%cといった文字列を使用しています。
%で始まる文字列は、カンマで区切った後に書いてある変数の値と置き換わります。

実行結果

代入前 > a:2,b:5,c:0,d:
代入後 > a:3,b:5,c:15,d:D

変数の宣言時のメモリの確保について

プログラム中の変数や配列などの値は、コンピュータ上のメインメモリ(Random Access Memory; RAM) 上に 記録されています。
このメモリには、場所を表す「アドレス」という連続した通し番号(整数の値)がついており、変数名とアドレスの 組み合わせは、OSにより管理されています。

変数宣言の記述例

// 変数宣言 program in C.
#include <stdio.h>
        
int main(int argc, char *args[])
{    
    char a;	
    int  b; 
}

例として、変数「a」をchar型で、変数「b」をint型で宣言した場合、以下のように変数の値を格納する場所が メインメモリ上に確保され、「a」、「b」という名前を使ってこの場所に値を書き込んだり、参照したりすることが できるようになります。
※ 以下の図では連続したメモリ上に変数が割り当てられていますが、変数のアドレスはいつでも必ず連番とは限りません。

変数アドレス


上記のような宣言を行った直後の変数の初期値には以下のような値が格納されている為、 必ず変数の初期化を行う必要があります。
(割り振られたアドレスに宣言前に使用していたデータ ( ゴミデータ ) が残っている可能性がある為)

変数アドレス


ただし、現在のVSでは初期化を行わずにコンパイルを行った場合、 「エラー C4700 初期化されていないローカル変数 'a' が使用されます」 という警告メッセージが出力される為、初期化漏れを検出しやすくなっています。


Last updated:2018/09/02
Author:efn

';