😽
プログラミング言語における変数って「入れ物」?
C言語を例としよう。
int i = 0;
int
は変数か? → 違う。変数の型だ。
i
は変数か? → 違う。変数の識別子だ。
0
は変数か? → 違う。数値(整数)リテラルだ。
じゃあ、 変数
はどこにいるのか?本物の変数は人の目に見えない場所にいる。メモリの中だ。
上記コードで 変数を宣言する
とは、つまり 識別子 i かつデータ型 int かつ初期値 0 の変数を宣言する
という意味になる。
つまり i を識別子とするint型変数
は、ある時点のスナップショットでは整数 0
であり、
異なる時点のスナップショットでは整数 1
であったり整数 2
であったりする 可能性がある
。
変数を宣言する
とは、そういう宣言に過ぎないわけだ。
なお、上の例で i という識別子
は具体的な一つのメモリ上の値を指している。
昔から「変数は入れ物」と表現する人がいるので、改めて違和感の正体を言語化した。
「入れ物」ではなく「(識別子は)指し物」とでも言い直して欲しいものだ。
(その様な意味合いとして、やはりC言語のポインタの概念を学ぶ事がプログラマとしては重要に感じる)
分かり易さを優先してもいいけど、間違ってる事を放置したままにはしないで欲しい。
Discussion