第2章 変数を宣言する

1 データ型と変数の型宣言

変数とは?

変数とは、何かを入れておくのことである。何かとは、数値や文字のことである。

変数の型とは?

変数には色々なものが入れられるが、1つの変数には1つの種類の物しか入れられない。型とは、その種類のことである。

基本のデータ型
データ型 扱える値の範囲とサイズ 説明
char(キャラ)
文字型
-128〜127
1バイト
'a'や'1'という1文字を扱う
int(イント)
整数型
-32768〜32767
2バイト
100や-20という整数を扱う
long(ロング)
倍長整数型
-2147483648〜2147483647
4バイト
intでは扱えない桁数の多い整数を扱う
double(ダブル)
倍精度実数型
±1.7×10^-308〜±1.7×10^308
8バイト
3.14159のような小数点数を扱う

変数の宣言方法

基本のデータ型の変数を宣言するには次のように行う。

#include <stdio.h>

main()
{
    char c;
    int a;
    long la;
    double b;

複数の変数を同時に宣言する

例えばint型の変数を3つ宣言する場合、
int a;
int b;
int c;

と宣言してもいいが、
int a, b, c;
とまとめて宣言することもできる。

2 変数に値を入れるには?

変数に値を入れるには、代入演算子「=」を使用する。代入演算子の左側は変数、右側は入れたい値(定数)である。逆にするとエラーになる。

1.int型の変数に値を入れる

int a, b;

a = 19;
b = -20;

2.long型の変数に値を入れる

long a, b;

a = 19L;
b = -20L;

long型の定数には末尾にLまたはlを付ける。付けなくてもエラーにはならないが、自動的に型変換が行われるため、処理が重くなる。

3.double型の変数に値を入れる

double a, b;

a = 3.14159;
b = 0.0;

double型の定数には必ず小数点以下を付ける。小数点をつけずに整数のままでもエラーにはならないが、自動的に型変換が行われるため、処理が重くなる。

4.char型の変数に値を入れる

char a, b;

a = 'a';
b = '0';

文字定数は必ず「'(シングルクォーテーション)」で囲まなければならない。変数名と区別するためである。

3 変数の初期化

変数を宣言すると同時に値を入れることができる。これを初期化と呼ぶ。

int a = 0;
int b = 0;

もちろんこのコードは

int a = 0, b = 0;

と書くこともできる。

4 算術演算子

C言語に限らず、ほとんどのプログラミング言語では数値や変数に対して演算を行える。以下はC言語の場合の説明である。

1.算術演算子の種類

int a, b = 15;の場合
演算子機能使用例計算結果
加算a = b + 10;aの値は25
減算a = b - 10;aの値は5
乗算a = b * 10;aの値は150
除算a = b / 10;aの値は1
剰余算a = b % 10;aの値は5

2.演算の優先順位

数学と同じように、演算には優先順位がある。例えば
a = 10 + 2 * 3;
この計算式の場合、変数aに格納される値は16となる。
この式で足し算を先に行いたい場合は
a = (10 + 2) * 3;
のように、先に計算したい式をカッコで囲む。この計算式の場合、変数aに格納される値は36となる。

補足

BASICなどには存在するが、C言語には何故かべき乗を計算する演算子「^」が存在しない。当然
a = b ^ 3;
と記述するとエラーになる。べき乗を求める場合は
a = b * b * b;
としなければならない。覚えておこう!

5 便利な演算子

数学のような計算式以外にも、C言語独特の記述方法がある。これらの記述方法はただ便利なだけではなく普通の式と比べ、処理速度がほんの少しだけ速くなるというメリットがある。ぜひ覚えておこう。

1.代入演算子の応用

例えばa = a + b;は変数aに変数bの値を足して変数aに代入する。この式はa += b;と記述できる。
このように「〜して代入」シリーズはこの他にも色々ある。

演算子機能
+=足して代入
−=引いて代入
*=掛けて代入
/=割って代入
%=余って代入
<<=左シフトして代入
>>=右シフトして代入
&=ANDして代入
|=ORして代入
^=NOTして代入

インクリメント・デクリメント

a = a + 1;a += 1;と記述できることは前に書いたが、1を加える場合のみa++;または++a;と記述できる。これをインクリメントと呼ぶ。
同様に、1を減らす場合はa--;または--a;と記述できる。これをデクリメントと呼ぶ。
++や--を変数の前に書いても後ろに書いても計算結果は同じだが、動作が微妙に違う。この違いについては後で解説する。
ちなみに**や//などは存在しない。

6 名前の決まり

変数名や関数名をつける場合、C言語では次の規則に従わなければならない。

確認しよう

さまざまな演算子を使い、変数の値がどうなったかを確認しよう。

問題1

次の計算を実行した後の各変数の値は?

int a=10, b=20;

a += b;
b *= 10;

問題2

次の計算を実行した後の各変数の値は?

int a=10;

--a;

・(10回繰り返す)

問題3

次の計算式を実行した後のcの値は?

int a, b, c;

a = 3;
b = 4;
c = a + (b + a) * a;

[ TOP ]