2.12.1. 変数#

C/C++ は、これまでに紹介した PythonPerl とは違い、非常に几帳面な言語です。変数を使う前に「型」を明確に宣言しなければならず、言語側が勝手に空気を読んでくれることはほぼありません。その代わり、何が起きているかはすべて把握できます。理論上は。

2.12.1.1. 数値#

C/C++ では、変数を利用する前に必ず宣言を行います。その際、その変数にどのような種類の値を入れる予定なのかを、あらかじめ決めておく必要があります。例えば、整数を保存する変数 a を用意する場合は、次のように書きます。

int a;

ここで int は整数型を表すキーワードで、a が変数名です。この操作で、整数を保存するための箱 a を用意したことになります。

C/C++ では、宣言しただけの変数の中に、どのような値が入っているかは分かりません。0 や 1 かもしれませんし、昨日に食べ残したピザの切れ端が入っている可能性もあります。中身不明の箱は危険です。変数を使う前には必ず初期化を行いましょう。

次は、変数 a を宣言し、値 10 を代入してから表示する例です。

int a;
a = 10;
printf("%d\n", a);

宣言と同時に初期化することも可能です。この方が安全で、読みやすく、うっかりミスも防げます。

int a = 10;

小数を扱う場合は、float 型や double 型を利用します。float は単精度、double は倍精度の浮動小数点数を表し、後者の方がより多くの桁数を扱えます。精度が必要な場面では、double を利用します。

float b = 3.14;
double c = 3.141592653589793;

2.12.1.2. 文字#

文字を扱う場合は、char 型を使います。char 型の変数には、シングルクォーテーション(')で囲んだ 1 文字だけを代入します。

char d = 'A';

複数の文字を扱いたい場合は、char 型の配列を利用します。このとき、代入したい文字列をダブルクォーテーション(")で囲んで指定します。

char str[] = "DNA";

一文字の場合は '、複数文字の場合は "。ここを間違えると、C/C++ は一切フォローしてくれません。

2.12.1.3. 配列#

複数の値をまとめて扱いたい場合には、配列ベクターリスト連想配列などを利用します。配列、ベクター、リストは、インデックス(番号)を使って要素を順番に管理します。一方、連想配列はキーと値のペアで要素を管理します。それぞれの詳しい使い方については、次項以降で説明します。