C言語

数値を記憶する(変数)と基本的な演算

コンピュータは、いろいろな値を記憶させながら、計算や命令などを行っています。
ただ、数値を直接プログラムに記述しても、毎回同じ結果になるだけで、値を代えたいと思っても、プログラムを修正しなければいけません。
このため、数値を記憶したり、記憶した数値を取り出して使う方法があれば便利ですね。
今回は、この数値を記憶するための仕組み(変数)と四則演算などの計算について学びます。

四則演算

計算をする場合、C言語でも数式を記述するだけでOKです。
ただし、数学での記号とは異なるものもありますので、基本的な記号を紹介します。
また、計算する際に使用する記号のことを算術演算子と呼びます。そして、演算対象の数値などのことをオペランドをいいます。

C言語で使用する記号(算術演算子)数学での記号説明
++加算(足し算)
--減算(引き算)
*×乗算(掛け算)
/÷除算(割り算)
%剰余算(割り算の余り)

乗算や除算は書き方が異なりますので、注意が必要です。
また、 % は余りを求めることができます。例えば、10 % 4 の結果は、2になります。

数式を記述したサンプルプログラムを次に示します。

int main(void)
{
    1 + 1;
    5 - 1;

    return 0;
}

このサンプルブログラムを実行しても何も表示されません。
画面に表示するにはprintf関数を使いますが、これについては、次回の「 数値や記憶した値を画面に表示 」で学びます。
今回は、C言語で使用する算術演算子の種類と、計算は、数式で記述できることを覚えていただければ十分です。

次に、数値を記憶する仕組みについて学びます。

変数とは

コンピュータには数値などの値を保存しておける場所があります。それがメモリです。
プログラムには、このメモリ領域の中でこれから使用する箇所に名前をつけることができます。この付けた名前が、変数と呼ばれるものです。

コンピュータのメモリは、ロッカーが膨大に並んでいるようなイメージです。
ロッカーには、1つ1つに番号が付けられていて、この番号のことをアドレスと呼びます。
このロッカーに名前を付けることで、名前の付いたロッカーが使用可能になり、出し入れができるようになります。この付けた名前のことを変数名といいます。
また、変数の名前に使用できる文字や数字の組み合わせを識別子といいます。

変数を使用するためには

C言語では、メモリに名前をつけることを、変数の宣言と呼んでいます。
この変数の宣言をすることにより、変数が利用できるようになります。このため、変数を使用する際は、必ず、変数の宣言が必要になります。
変数を宣言するには、次のような書き方をします。

変数の宣言

型名 変数名 ;

型名とは、記憶しておきたい数値の種類を記述します。
種類は、整数なのか、小数なのか、文字なのか、マイナス値があるのか、などによって分かれています。また、どのくらいのサイズを使うのかでも種類はわかれています。
たとえば、数値の範囲が、ロッカー1つで収まるようなサイズなのか、ロッカーが2ついるのかによって、種類が分かれるイメージです。
C言語には、いろいろな型が用意されています。型の種類については、もう少し学んだあとに紹介します。
今回は、int という型を使用します。この int は、整数値を扱う型名になります。

変数名に、好きな名前を記述します。
ただし、変数名として使用可能な文字には制約があります。

変数の宣言も文の1つなので、セミコロンを付ける必要があります。

変数名は、次のように、カンマ区切りで名前を複数つけることができます。

int number, sum;

上記のサンプルでは、int型のnumberと、sumという変数名を宣言したことになります。

変数名として使用する識別子の制約

変数の名前として使用可能な文字には次のような制約があります。

  • 英字、数字、アンダースコア( _ )のみを使用しなければなりません。
  • 数字で始まる名前は使用できません。
  • C言語で予約語としている単語は使用することができません。
  • 開発環境によりますが、31文字までに納める必要がある場合があります。

また、大文字と小文字は異なるものとして区別されます。

識別子とは、変数名などの、プログラム中に現れる名前、記号、符号、数字などのことを言います。これから識別子という言葉がよく出てくると思いますが、様々な対象から特定のものを区別するための文字列や数字、記号等のことを言うことを覚えておくと理解しやすくなるのではないかと思います。

予約語とは、プログラム言語に用意されている命令語などのことを言います。
例えば、ここで出てきた int というのが予約語になります。ただ、あくまで単語が使用できないのみであり、int1 など変数名の一部に含まれる場合は問題ありません。

変数の使用方法と演算

次は、変数の使用方法です。
変数の使用方法には、大きく分けて2つあります。
1つは、数値や別の変数の値を記憶させること。これを、代入すると言います。
もう1つは、変数を数値の代わりとして使用することです。

数値を変数に代入するには、次のように記述します。

構文

変数名 = 数値 ;

ここでの = は、数学の = とは別の意味の記号です。
プログラムの = は、= の右側の値を、左側の変数に記憶するという意味になります。

サンプルプログラムを次に示します。

#include <stdio.h>

int main( void )
{
    int number;
    int sum;

    number = 10;
    sum = number + 1;

    printf("%d¥n", number);
    printf("%d¥n", sum);

    return 0;
}

このプログラムの実行結果は、次のようになります。

実行結果

10
11

8行目で、number変数に10を代入しています。
先ほど、 変数を数値の代わりとして使用する と言いましたが、9行目のnumberがそれに該当します。9行目では、numberが、10の値の代わりとして使用されます。そして、numberに1を加算した値を、sum変数に代入するということになります。このように、変数に代入する場合、数値だけでなく、変数の値も代入することができます。
また、一度、代入した変数に対して、もう一度、値を代入すると、上書きして値を変更することができ、何度も値を更新することができます。
11行目と12行目のprintf関数については、まだ、学習していませんが、numberとsumの値を画面に表示するプログラムになります。このprintf関数の詳細については、次回学びます。
実行結果には、numberとsumの値が表示されます。

何も値を代入していない変数の場合は、変数の値は不定となるため、予期しない値を出力する可能性があります。不具合の原因になりますので、変数を使用するときは、必ず値を代入するようにしてください。

変数の初期化

変数を宣言したときに、同時に、変数に値を代入することもできます。
これを、変数を初期化するといいます。

int number = 1;

このようにすることで、変数の宣言と初期化を同時にすることができます。

以上が、変数と演算についての内容でした。

次は、先ほど少し触れた、変数の値を画面に表示する方法について学習します。

数値や記憶した値を画面に表示

-C言語