C言語における変数とは、メモリ位置の名前のことを言います。
コンピュータでは値などのデータをメモリに保存していますが、その値を見るためにはメモリのどこに値が保存されているのかを知っている必要があります。
つまり、その『メモリの位置』に対応づけられた名前のことを変数と言います。
変数とメモリ位置は以下のような対応付けになっています。
0x0000E006(メモリアドレス)⇄ variable (変数)
変数の宣言
変数を利用するには、変数を宣言する必要があります。
以下に変数を宣言する例を示します。
1 2 3 4 5 6 |
int a; float b; char c; double d; |
a, b, c, dは変数で、 int, float, char, doubleをデータ型といいます。
宣言された変数は、以下のようにして使われます。
1 2 3 4 5 6 7 8 9 10 |
#include <stdio.h> int main(void) { int a; a = 10 + 10; printf("%d\n", a); return 0; } |
このプログラムを実行すると、
20と表示されていると思います。
また、以下のコードのように変数の宣言と代入を同時に行うこともできます。
1 2 3 4 5 6 7 8 9 10 11 |
int main(void) { int a = 10, b = 5; float c = 20.93; char d = 'A'; printf("%d %d\n", a, b); printf("%f\n", c); printf("%c\n", d); return 0; } |
実行すると、以下のようになります。
1 2 3 4 5 |
10 5 20.930000 A |
変数の命名規則
変数はメモリ位置に名前を付けたものだという説明をしましたが、変数につけれる名前には何でも付けて良いわけではなく、いくつかの制約があります。
・変数は名前にアルファベットと数字、アンダースコア(_)を含めることができる。
・変数名はアルファベットとアンダースコアからのみ始めることができる。変数名の先頭に数字を使うことはできない。
・変数名にスペースを使うことはできない。
・予約語やキーワードは変数名に使うことはできない(intやfloatなど)
正しい変数名の例:
1 2 3 4 5 |
int a; int _name; int a100; |
正しくない変数名の例:
1 2 3 4 5 |
int 2a; // 数字から始まっているからダメ int a b c; // 変数名にスペースが入っているからダメ int int; // 『int』という予約語が使われているのでダメ |
変数のタイプ
C言語で使われている変数には、様々なタイプがあり、それぞれが重要な役割を持っています。
よく使われているものは、以下の5つです。
・ ローカル変数(局所変数, local variable)
・ グローバル変数(大域変数, global variable)
・ 静的変数(static variable)
・ 自動変数(automatic variable)
・ 外部変数(external variable)
ローカル変数
ローカル変数は、関数やブロックの中で宣言された変数のことをいいます。
1 2 3 4 5 6 7 8 |
#include <stdio.h> int main(void) { int a = 10; // ローカル変数 return 0; } |
グローバル変数
グローバル変数は関数やブロックの外で宣言された変数のことをいいます。
グローバル変数のメリットは、どの関数からでも値を変更したり利用したりすることができるところです。
1 2 3 4 5 6 7 8 9 10 |
#include <stdio.h> int b = 1000; int main(void) { int a = 10; // ローカル変数 return 0; } |
他の3つについては、C言語の入門ではあまり使うことがないので、以下のページにまとめてあります。
