Linux講座にようこそ。このページは「C言語プログラミング入門 - 第2章 データを格納するための変数」です。

C言語プログラミング入門

2. データを格納するための変数(1/2)

2.1 変数の宣言

ここでは、C言語で変数を使用する際に必要な基本的な約束事を説明します。

人間がちょっと複雑な計算を人手で行うときには、数値をメモ用紙にメモしながら計算を行うことになると思います。この様な計算をプログラムで処理するときのメモ用紙に相当するものが変数になります。変数はプログラムと同様に、コンピュータのメモリー上に確保されて、内容の設定や変更が自由にできます。

プログラミング言語の種類により、変数の使い方は多少異なります。C言語の場合はあらかじめ宣言をしておく必要があります。

C言語で取り扱えるデータは大きくわけると数値と文字になりますが、数値はさらに整数浮動小数点数になります。整数と浮動小数点数は取り扱うデータの種類により、使い分ける必要があります。例えば、バレーボールのブロック本数を数えるような場合は1本、2本、…のような数えかたになりますので整数になるでしょうし、ブロック得点率を求めるような場合は0.96、0.80のような集計になりますので浮動小数点数になるでしょう。

また、文字も実際には整数値として取り扱っています。つまり、取り扱う全ての文字には整数値が割り当てられており、内部的な文字の処理は、その整数値で行います。各文字に対して、どのような整数値を割り振るかはコード表に従います。C言語では一般にASCIIコード表を採用しています。

2.1.1 形式

変数の宣言は型名あるいはデータ型と呼ぶものと、変数名を指定します。型名には格納するデータの種類を、変数名には変数を識別するための名前を指定します。また、あらかじめ設定したい値が決まっている場合は、初期値として指定することもできます。なお、C言語では変数の宣言はブロックの先頭で行うことになっていますので注意して下さい。

初期値としては整数や浮動小数点数などの値を直接指定できます。例えば、10や3.15のような指定になります。このように記述した値は変更することができませんので、変数に対して定数と呼んでいます。

※ 宣言時に初期値を指定しない場合
型名 変数名; ← 宣言も一種の文になりますので、最後に;(セミコロン)を指定します

※ 宣言時に初期値を指定する場合
型名 変数名 = 初期値;
型名
変数に格納するデータの種類により、【表2-1】にあげたような型名を指定します。型名はC言語の仕様により決まっています。なお、型名と変数名の間には1個以上の空白(半角スペースやタブ)が必要です。
変数名
変数を識別するための名前を指定します。変数名は使える文字種に制限は有るものの自由に指定できますが、格納するデータの使用目的等が類推できるような名前にするとよいでしょう。変数名として使用できる文字は半角の英数字_(アンダライン)です。また、先頭1文字は英字または、アンダラインで数字は指定できません。大文字と小文字は区別しますので注意してください。
初期値
変数にあらかじめ設定しておきたい値が有ればそれを指定します。初期値は省略可能で、省略した場合の値は基本的には不定です。(詳しくは「10. データの有効範囲と寿命を規定する記憶クラス」で説明します)なお、=(等号)の前後の空白は有っても無くても良いのですが、当講座では見やすくするために半角スペースを1個入れています。
【表2-1】 型名一覧(代表的なもの)
型名大きさ(表現できる範囲)説明
char1バイト(-128〜127)符号付の最も小さな整数です。通常は半角1文字を扱います。
short2バイト(-32768〜32767)符号付の小さな整数です。
int4バイト
(-2147483648〜2147483647)
符号付の標準的な整数です。
unsigned char1バイト(0〜255)符号無しの最も小さな整数です。
unsigned short2バイト(0〜65535)符号無しの小さな整数です。
unsigned int4バイト(0〜4294967295)符号無しの標準的な整数です。
float4バイト
(-3.40282×1038〜3.40282×1038
小さな浮動小数点数です。(単精度、精度は6桁)
double8バイト
(-1.79769×10308〜1.79769×10308
標準的な浮動小数点数です。(倍精度、精度は15桁)

型名により、取り扱える数値の範囲が異なりますので使いわけが必要です。一般に、整数はint型、浮動小数点数はdouble型を使えば問題は少ないでしょう。また、コンピュータの性能も一番引き出せると思います。

char型は整数型の一種ですが、通常は文字を取り扱うときに使用します。コンピュータは文字も数値として取り扱いますので、文字と数値の対応を定義したコード表が必要です。通常、C言語ではASCIIコード表と呼ぶコード表に対応しています。ASCIIコード表については「付録1.ASCIIコード表」をご覧ください。

整数型には符号付きのものと符号無しのものが有ります。符号無しのものは負の値は取り扱えませんので注意してください。また、char、short、intは「signed」を付けてsigned char、signed short、signed intとしてもかまいません。

【表2-1】にあげた型名は代表的なもののみです。今の所はこのくらい認識しておいていただければ充分です。また、「大きさ」はコンピュータやOSの種類により異なることがあります。

2.1.2 例題

この例題は変数の宣言だけしか行っていませんので、実行しても何も表示しません。

  1. int main()
  2. {
  3.     short   bango   = 12;
  4.     int     nenrei;
  5.     float   taijyu  = 65.5;
  6.     double  sintyo;
  7.     char    ketueki = 'A';
  8.  
  9.     return 0;
  10. }
3行目
short型のbangoという名前の変数で、初期値は12です。12や5行目の65.5は定数です。
4行目
int型のnenreiという名前の変数です。初期値の指定がありませんので値は不定です。このような場合は後で値を設定する必要があります。設定は代入演算子を使って行います。(演算子については後ほど説明します)
5行目
float型のtaijyuという名前の変数で、初期値は65.5です。
6行目
double型のsintyoという名前の変数です。初期値の指定がありませんので値は不定です。
7行目
char型のketuekiという名前の変数で、初期値は半角のAです。char型は半角1文字しか取り扱えませんので、初期値で指定できる文字は1文字だけです。また、文字は'(アポストロフィ)で括りますので注意して下さい。