「C/C++プログラミング入門 – もっと複雑な計算を行う」及び「C/C++プログラミング入門 – 計算を行う」ではC言語及びC++における計算について説明を行った。ここでは変数について変数の宣言、代入、参照について説明を行いたい。
変数
変数を扱ったサンプルコードをいかに記述する。これをもとに説明を行う ((基本的にC言語とC++では同様のため、今回はC言語のコードのみ記述する)) 。
サンプルコード
#include <stdio.h>
#include <stdlib.h>
int main() {
int num;
num = 10;
printf("numの数字: %d", num);
return EXIT_SUCCESS;
}
解説
int main()内において、まず、int型(整数型)のnumという名の変数を宣言している。C言語とC++では変数を扱うには必ず宣言を行わなければならない。型も宣言時に決めなければならない。
次にnumという変数に10という数字が代入される。numという変数は整数型であるため、基本的には整数でなければならない。仮に小数が代入された場合、暗黙的に整数型に変換されるか、コンパイルエラーが発生する。
その次は%dの部分で代入したnumの値を参照している。ここではnumに10を代入したから、「numの数字: 10」と表示される。
なお、変数は以下のように宣言と同時に代入することもできる。これを「定義」という。
int num = 10;
変数の型
C言語及びC++では変数の種類によって「型」が変わってくる。ここではよく使われている変数の型について説明したい。
主な変数の型
C言語及びC++では以下の変数の型が使われる。
- bool (C++のみ ((C言語では存在しない。C99以降では_Boolが追加されていて、なおかつ見かけ上boolが使えるようになっている、C++とは違い、実際には整数値として扱われる)) ) – 論理型(true/false)
- char
- short
- int
- long
- long long
- unsigned char
- unsigned short
- unsigned int
- unsigned long
- unsigned long long
- float – 単精度浮動小数点数
- double – 倍精度浮動小数点数
これらの型の扱える数値の大きさは、bool ≦ char ≦ short ≦ int ≦ long ≦ long longが成り立っている以外は厳密には決められていない。charに至っては符号付きかどうかも実装によって異なる。詳細については「C/C++における整数型には気をつけよ」を参照されたい。
上記のほかに、いくつかの変数をまとめた構造体、識別子をリストしてカテゴリー変数として扱える列挙型などがある。また、これらの型のほかにも目的に応じて作られた様々な型があるが、これらは基本的には上記の変数の別名として登録あるいは、構造体や列挙型などから作られたものといえる。
C言語では文字列を扱う型は存在せず、多くの場合char型の配列あるいはポインターを使って文字列を表現する ((C++では文字列を扱うクラスがある)) 。
最後に
今回は変数とその型について説明を行った。C言語及びC++ではほかの言語と比較して整数の型の実態は処理系に応じて変わってくるため ((例えば整数型のlong型において、ある環境では-2147483648〜2147483647しか扱えないが、別の環境では-9223372036854775808〜9223372036854775807も扱えるなど、詳細はC/C++における整数型には気をつけよを参照)) 、実際にプログラムを作るにあたってはそれも考慮に入れて行う必要がある点は気をつけたい。
次回以降はここで学んだ変数やその型を使って説明を続けたい。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。