対象 | C言語初心者 |
記事概要 | C言語の「変数」の扱い方について記載しています。 |
筆者 | Zuu [ ] C言語歴20年以上。 大手電機メーカーでの製品開発経験がある現役エンジニアです。 プロジェクトマネージャ、システムアーキテクトなどの資格を保有しています。 |
はじめに
変数は、ほぼすべてのプログラミング言語で使用すると言っても過言ではない基本機能です。
非常に重要な機能ですので、しっかりマスターしましょう。
変数とは?
プログラミングにおける変数(へんすう、英: variable)とは、高水準言語のプログラムのソースコードにおいて、扱うデータを読み書きする記憶域(storage) のことであり、固有の名前(識別子)によって識別される。
理解しておきたいポイントは以下の2点です。
- データの読み書きに使用する記憶域であるということ
- 固有の名前によって識別されるということ
それぞれについて、もう少し細かく説明します。
データの読み書きに使用する記憶域
変数は、プログラムが起動している状態で使用可能な記憶域です。
例えば、電卓アプリで計算途中の値(データ)を覚えておくといった用途で使用されます。
プログラムが起動していない状態でデータを保存しておきたい場合には、変数ではなくファイルを使用します。
ファイルについては、別の記事で説明します。
固有の名前によって識別される
変数はプログラム内で複数利用することができるため、区別するために名前をつけることになります。
変数の名前は自由に付けることができますが、どのようなデータが記憶されているかわかる名前にするのがプログラマとしての腕の見せ所です。
C言語での変数の扱い方
宣言
C言語で変数を使用するには、まず変数を「宣言」する必要があります。宣言とは、変数に記憶する値(データ)の「型と名前」を決めることです。
以下に、C言語での変数宣言の例を示します。「型、半角スペース、名前、セミコロン」という形になります。
1 |
int a; |
上の例では、型に「int」を使用しています。intとは「integer」の略で、「整数(0,1,-1など)」を意味します。
C言語では、int以外にも以下のような型を使うことができます。どのようなデータを記憶するかによって、型を使いわけていくのがポイントとなります。
型 | 記憶できるデータ |
---|---|
int | 整数(0,1,-1など) |
float | 小数(0,0.1,-0.1など) |
char | 文字(‘a’,’b’,’0’など) |
同じ型の変数なら、1行で複数宣言することもできます。
1 |
int a, b; |
代入
変数に値(データ)を記憶することを「代入」といいます。代入には、「=」を使用します。
1 2 3 4 5 6 7 |
int a; float f; char c; a = 1; /* 整数型の変数 a に 1 を記憶 */ f = 2.2; /* 小数型の変数 f に 2.2 を記憶 */ c = 'X'; /* 文字型の変数 c に 'X' を記憶 */ |
変数に記憶されている値を表示するには、printf()を使用します。
1 2 3 |
printf("%d\n", a); printf("%f\n", f); printf("%c\n", c); |
※変数の型に応じて書式(「%d」などの%で始まるもの)を変える必要があります。
書式 | 表示できるデータ |
---|---|
%d | 整数 |
%f | 小数 |
%c | 文字 |
四則演算
変数に記憶されている値を使用して、四則演算を行うことができます。四則演算は以下の表で示す記号を使用します。
記号 | 演算内容 |
---|---|
「+」 | 足し算(加算) |
「-」 | 引き算(減算) |
「*」 | 掛け算(乗算) |
「/」 | 割り算(除算) |
1 2 3 4 |
a = b + c; a = b - c; a = b * c; a = b / c; |
※整数同士の割り算は結果も整数になります(切り捨て)。
※例えば、1 / 2 は、小数の 0.5 ではなく、整数の 0 になります。
※小数点以下も記憶したい場合は、変数の型にfloatにする必要があります。
四則演算以外にも、以下のような演算が可能です。特に「%」はよく使用するので、覚えておきましょう。
記号 | 演算内容 |
---|---|
「%」 | 余り(剰余) |
「|」 | 論理和 |
「&」 | 論理積 |
「^」 | 排他的論理和 |
その他に覚えておきたいこと
変数の初期化方法
変数に値を記憶する際に「代入」を使用していましたが、代入は変数の宣言と同時に行うことも可能です。
変数の宣言と代入を同時に行うことを「初期化」と呼びます。
1 |
int a = 1; |
宣言場所による違い
変数は、宣言場所(関数の中か外か)によって扱いが変わります。後で説明する「関数」に関連するので、最初は読み飛ばしてもらって、また後で読むというのでも構いません。
種別 | 宣言場所 | 特徴 |
---|---|---|
ローカル変数 | 関数の中 | 宣言した関数内でのみ参照可能 ※グローバル変数と同名不可 |
グローバル変数 | 関数の外 | プログラム内のどこからでも参照可能 |
static修飾子
変数には、static修飾子というものをつけることができます。static修飾子をつけると以下のように動作が変わります。
種別 | 動作の変わり方 |
---|---|
ローカル変数 | 関数終了後も値を記憶する ※あまり使わない機能 |
グローバル変数 | ファイル内からだけ参照可能 ※他のファイルからは参照不可 |
static修飾子は以下のように使います。
1 |
static int a; |
まとめ
- 変数とは、値(データ)を記憶する機能。
- 変数に記憶したい値(数値や文字など)によって、型を変える必要がある。
- 変数は名前で区別する。適切な名前(用途など)を付けておくと良い。
- 変数にはローカル・グローバルという区別がある。static修飾子で動きが変わる。
コメント