C言語の始め方【第2回 変数】※現役エンジニアによる解説

C言語の始め方
対象C言語初心者
記事概要C言語の「変数」の扱い方について記載しています。
筆者C言語歴20年以上。
大手電機メーカーでの製品開発経験がある現役エンジニアです。
プロジェクトマネージャ、システムアーキテクトなどの資格を保有しています。

はじめに

変数は、ほぼすべてのプログラミング言語で使用すると言っても過言ではない基本機能です。
非常に重要な機能ですので、しっかりマスターしましょう。

変数とは?

プログラミングにおける変数(へんすう、英: variable)とは、高水準言語のプログラムのソースコードにおいて、扱うデータを読み書きする記憶域(storage) のことであり、固有の名前(識別子)によって識別される。

理解しておきたいポイントは以下の2点です。

  • データの読み書きに使用する記憶域であるということ
  • 固有の名前によって識別されるということ

それぞれについて、もう少し細かく説明します。

データの読み書きに使用する記憶域

変数は、プログラムが起動している状態で使用可能な記憶域です。
例えば、電卓アプリで計算途中の値(データ)を覚えておくといった用途で使用されます。
プログラムが起動していない状態でデータを保存しておきたい場合には、変数ではなくファイルを使用します。
ファイルについては、別の記事で説明します。

固有の名前によって識別される

変数はプログラム内で複数利用することができるため、区別するために名前をつけることになります。
変数の名前は自由に付けることができますが、どのようなデータが記憶されているかわかる名前にするのがプログラマとしての腕の見せ所です。

C言語での変数の扱い方

宣言

C言語で変数を使用するには、まず変数を「宣言」する必要があります。宣言とは、変数に記憶する値(データ)の「型と名前」を決めることです。

以下に、C言語での変数宣言の例を示します。「型、半角スペース、名前、セミコロン」という形になります。

上の例では、型に「int」を使用しています。intとは「integer」の略で、「整数(0,1,-1など)」を意味します。

C言語では、int以外にも以下のような型を使うことができます。どのようなデータを記憶するかによって、型を使いわけていくのがポイントとなります。

記憶できるデータ
int整数(0,1,-1など)
float小数(0,0.1,-0.1など)
char文字(‘a’,’b’,’0’など)

同じ型の変数なら、1行で複数宣言することもできます。

代入

変数に値(データ)を記憶することを「代入」といいます。代入には、「=」を使用します。

変数に記憶されている値を表示するには、printf()を使用します。

※変数の型に応じて書式(「%d」などの%で始まるもの)を変える必要があります。

書式表示できるデータ
%d整数
%f小数
%c文字

四則演算

変数に記憶されている値を使用して、四則演算を行うことができます。四則演算は以下の表で示す記号を使用します。

記号演算内容
「+」足し算(加算)
「-」引き算(減算)
「*」掛け算(乗算)
「/」割り算(除算)

※整数同士の割り算は結果も整数になります(切り捨て)。
※例えば、1 / 2 は、小数の 0.5 ではなく、整数の 0 になります。
※小数点以下も記憶したい場合は、変数の型にfloatにする必要があります。

四則演算以外にも、以下のような演算が可能です。特に「%」はよく使用するので、覚えておきましょう。

記号演算内容
「%」余り(剰余)
「|」論理和
「&」論理積
「^」排他的論理和

その他に覚えておきたいこと

変数の初期化方法

変数に値を記憶する際に「代入」を使用していましたが、代入は変数の宣言と同時に行うことも可能です。
変数の宣言と代入を同時に行うことを「初期化」と呼びます。

宣言場所による違い

変数は、宣言場所(関数の中か外か)によって扱いが変わります。後で説明する「関数」に関連するので、最初は読み飛ばしてもらって、また後で読むというのでも構いません。

種別宣言場所特徴
ローカル変数関数の中宣言した関数内でのみ参照可能
※グローバル変数と同名不可
グローバル変数関数の外プログラム内のどこからでも参照可能

static修飾子

変数には、static修飾子というものをつけることができます。static修飾子をつけると以下のように動作が変わります。

種別動作の変わり方
ローカル変数関数終了後も値を記憶する ※あまり使わない機能
グローバル変数ファイル内からだけ参照可能 ※他のファイルからは参照不可

static修飾子は以下のように使います。

まとめ

  • 変数とは、値(データ)を記憶する機能。
  • 変数に記憶したい値(数値や文字など)によって、型を変える必要がある。
  • 変数は名前で区別する。適切な名前(用途など)を付けておくと良い。
  • 変数にはローカル・グローバルという区別がある。static修飾子で動きが変わる。
C言語の始め方【第3回 分岐・反復】※現役エンジニアによる解説
対象C言語初心者記事概要C言語の分岐・反復について記載しています。筆者C言語歴20年以上。大手電機メーカーでの製品開発およびマネジメント経験がある現役エンジニアです。プロジェクトマネージャ、システムアーキテクトなどの資格を保有しています。...

コメント

タイトルとURLをコピーしました