第2章 C言語の基礎 ~ printf( ) と 変数について ~

 さぁ、頭を切り替えて、変数の説明に戻りましょう。

 変数が、足し算にしか使えないなんてことはあり得ないですね。 他にもいろいろな計算方法があるので見て行きましょう。 新しいファイルを作って、以下の記述を打ち込んで下さい。

– リスト4 –

#include <stdio.h>

void  main()
{
        int  val;
        int  val2;

        val  =  0;    (1)

        printf( "valは%dです。val2は%dです\n", val, val2 );

        val  +=  100;    (2)

        val2  =  val  *  5;    (3)

        printf( "val = [%d] val2 = [%d]\n", val, val2 );

        val --;       (4)

        val2  =  10  /  3;     (5)

        printf( "val = [%d] val2 = [%d]\n", val, val2 );
}

 実行結果はどうなりました? では順番に解説して行きましょう。

 まず(1)は問題ないですね。「でも、最初に0を代入しても意味がないのでは」と 思った人もいるのではないでしょうか? 実は、変数は初めから0になっているとは限りません。 最初のprintf( ) の結果では、皆さんの画面には何て表示されましたか?

 「val = [0] val2 = [4256004]」という具合になりませんでしたか。

 変な数字が出てきましたね。つまり、変数は初めから0とは限らないもの (注12) なのです。上の例では、4356004となっていましたが、通常は何が入っているかはわかりません。

 よく、0に初期化していないのに、val++なんてやってしまうことがあります。気を付けましょう。

 次に(2)です。これは「val = val + 100」と同じ意味になります。 以前出てきたval++では、1しか増やせませんでしたが、これだといろんな値を増やせます。 しかし、C言語を作った人は本当に面倒臭がりだったのでしょうね。

 (3)はただの掛け算です。val に5を掛けた結果をval2に代入しています。 ここで大事なのは、valは5倍になったりしないという事です。

 (4)です。これは、いかにも++と反対の意味がありそうですね。 実はその通りで、元の値から1だけ引いてくれます。簡単ですね。 もちろん、(2)と同じような「val -= 100」という書き方もあります。

 (5)は割り算です。val2は、int型(整数型)なので3.3333・・・ とはなりません。 3になっていますね。小数点まで求めたい場合は、f loat型(浮動小数点型)の 変数を使わなければなりません。

 割り算の余り部分の方が欲しい場合には、「val2 = 10 % 3」とします。 この場合だと、1がval2 に入ります。

 最後になりますが、連続した計算もできますのでやってみて下さい。

  val = 100 * 20 / 10 + 50 / 10 * 100;

 計算する順序は、皆さんが良く知ってる算数と同じです。 ですから、上の式はこう書き直した方がわかりやすくなります。

  val = (100 * 20 / 10) + (50 / 10 * 100);

 さぁ、これで変数の説明は一旦終わりにします。わからないことはないですか? 段々難しくなっていきますから、わからないことは今の内に講師に聞いて、はっきりさせておきましょう。


– まとめ –

< 前のページへ

Pagetop