C言語で、変数を宣言する位置はブロックの先頭です。ブロックとは{と}で囲まれた部分です。ブロックの先頭で宣言された変数はローカル変数と呼ばれ、そのブロック内で有効です。関数の外側の場所でも、変数を定義できます。これをグローバル変数といいます。グローバル変数はプログラム全体で使用可能です。
変数の宣言は、型に続けて名前を書くことによって行います。
C言語での変数の宣言は型に続けて名前を書くことによって行います。Cでの宣言について、変数の宣言、初期化方法、配列の宣言等について説明します。
C言語で、変数を宣言する位置はブロックの先頭です。ブロックとは{と}で囲まれた部分です。ブロックの先頭で宣言された変数はローカル変数と呼ばれ、そのブロック内で有効です。関数の外側の場所でも、変数を定義できます。これをグローバル変数といいます。グローバル変数はプログラム全体で使用可能です。
変数の宣言は、型に続けて名前を書くことによって行います。
変数の型 変数名;
C言語での基本的な変数の型はchar, int, float, doubleの4つです。これらの基本型に修飾子をつけることもできます。int型にはshort, longという修飾子がよく使われます。
short int year;
long int population;
これらのような宣言の時intは省略可能です。実際には、ほとんどのケースで省略されています。
多くの処理系では、shortの大きさは2バイトで、longの大きさは4バイトです。
unsignedという修飾子もよく使われます。この修飾子を使って宣言すると、値をゼロまたは正の数に限定できます。unsignedはcharとintの宣言時に使用できます。
宣言でよく使われる型(修飾子+型)と一般的な値の範囲を示します。
型 | 範囲 |
---|---|
char | -128 〜 127 |
unsigned char | 0 〜 255 |
short | -32,768 〜 32,767 |
unsigned short | 0 〜 65,535 |
long | -2,147,483,648 〜 2,147,483,647 |
unsigned long | 0 〜 4,294,967,295 |
char型は、処理系によっては0〜255の値をとることもあります。その時に負の値も持たせたい場合は、signedという修飾子をつけsigned charとして宣言します。
変数を宣言する時と同時に変数の初期化を行うことができます。
unsigned short year = 2000;
unsigned long population = 100000UL;
宣言時に初期化を行うと、ローカル変数が使われている関数やブロックが実行されるたびに、初期化が実行されます。初期値を代入する前は、ローカル変数の値は不定ですので、ローカル変数の宣言時の初期化は安全なコーディングを行う上で有効です。
グローバル変数の場合、宣言時に初期化を行うと、プログラムが実行される前に1回だけ初期化が行われます。そのため、初期値は定数式でなければいけません。初期化を行わなかった場合の初期値はゼロとなります。
配列の宣言は、型に続けて名前と要素数を指定して行います。
char ok_char[10];
int limit[] = {10, 18, 24, 36, 50};
初期化は上記2番目の例のように=と{}を使って行います。この時は要素数を省略できます。要素数を省略できるのは、初期化で値を指定している時のみです。
二次元配列の宣言は次のように行います。要素数は縦の大きさ、横の大きさの順で指定します。
char ok_char[10][5]; /* [行][列] */
int limit[2][5] = {
{10, 18, 24, 36, 50},
{100, 150, 220, 340, 400}
};