【独学C言語入門④】変数

変数とは様々なデータ型の値を入れる入れ物です。変数を使用するときはデータ型を宣言して値を入れる必要があります。変数にデータを入れることを代入と呼び、「=」を使用します。宣言と代入を同時に行うことを初期化と呼びます。

まずは、数値型の整数型をご紹介します。その名の通り整数のみしか代入できません。例えばintは8bitのデータを代入できますが、それは「2の8乗の範囲のデータを代入できる」ということです。intの場合はマイナスも代入できるのでその半分の範囲のプラスとマイナスのデータを代入することができます。

「unsigned」とは符号がないという意味で、unsignedを付けた場合はマイナスのデータは持てませんがunsignedがない場合と比較してプラスを2倍の範囲まで代入することができます。

データ型bit範囲
int8-128~127
unsigned int80~255
long32±約20億
unsigned long320~約40億
short16±約3万
unsigned short160~約6万
char8128~127
unsigned char80~255

実際に整数型の変数を宣言して代入してみます。

//以下の2つは同じこと

int a;    //整数型のaを宣言
a = 2;    //aに2を代入

int a = 2; //aを初期化

次に実数型です。こちらは小数も扱うことができる変数になります。

データ型bit範囲
float32±約3.4×10の38乗
double64±約1.7×10の308乗
float a = 1.2;

次にchar型です。アスキーコードといってコンピュータは文字に数値を割り当てて識別しています。char型は半角英数の1文字のみしか入れることができませんので注意が必要です。宣言の仕方をご紹介します。char型の文字は「’」シングルクォーテーションでくくります。

//以下の2つは同じこと

char c = 'C';
char c = 67;

//'C'と67は同じ

次に文字列型です。こちらは文字型の配列を用意して宣言します。文字列型は「”」ダブルクォーテーションでくくります。PythonやJavaなどと比較してC言語で文字列を扱う場合に異なる点が2点あります。

1つは使用する際に格納する文字数+NULL(1文字分)を足した要素数の箱を宣言します。NULLというのはここで文字列の最後と表現するために付けられます。ただ、宣言時にこの箱の要素数は省略することもできます。

「a」「p」「p」「l」「e」「NULL」で6文字分の箱が必要になります。

//以下の2つは同じこと

char a[6] = "apple";
char a[] = "apple";

//[]を空欄にすると自動で箱を用意します 

もう1点はやっかいなのですが、初期化の時しか「=」で変数に文字列を代入することができません。初期化した後に文字列を代入する場合は以下のように「strcpy_s」を使用します。※「strcpy(sなし)」はトラブル防止のためビルドでエラーが発生するようになったため、この入門では使用を避けます。

//以下の2つは同じこと

//初期化時に代入
char str[6] = "apple"

//初期化後に代入
char str[6];
strcpy_s(str, 6, "apple");
//strcpy_s(変数名, 要素数, 文字列)

最後にキャスト演算子についてご紹介します。キャスト演算子を使用するとすでに特定のデータ型で宣言したものを別のデータ型に変換して処理をさせることができます。

int a = 5;  //整数型

//intのまま2で割ると小数点以下は
//切り捨てになる

a / 2;
//結果は2

//floatに変換
(float)a / 2;
//結果は2.5

//表示にはprintfという関数を
//使用しますが次回ご説明します

//右が切れたら左にスワイプしてください

他の言語をすでに習得されている方はかなり面倒に感じるかと思いますが次回さらに面倒になります。まずはここまで理解をお願いします。

独学C言語入門一覧に戻る