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

 さらに、いろいろな使い方をして見ましょう。 リスト3に、以下の記述を追加して下さい。

#include <stdio.h>

void  main()
{
        int    val;

        val  =  5;

        val  =  val  +  1;  (1)

        val ++;             (2)
}

 一体何をしているのでしょうかね。 (1)の方は、元々 val に入っていた整数に、 1を足したものを再びval に入れるよう指示しています。

 元々 val は5だったので、val には6が入ります。わかりましたか?

 そして実は、(2)は(1)と同じ意味を持っているのです。 C言語を作った人は、かなり面倒臭がり屋だったのでしょう (C言語によく似ているPascal言語などには、++のような書き方はありません)。 (2)の方が、打ちこむ時に楽ですからね。

 ということは、val は最終的に7になったということですね。

 でも、本当にそうなんでしょうか? 上のプログラムを実行しても、 外からは全然見ることが出来ません。さっそく調べてみましょう。

 変数の中身は、printf( ) を使って調べることが出来ます。リスト3を以下のように変更して見て下さい。

#include <stdio.h>

void  main()
{
        int    val;

        val  =  5;

        printf( "今、変数の中身は、%dです\n", val );

        val  =  val  +  1;

        printf( "今、変数の中身は、%dです\n", val );

        val ++;

        printf( "今、変数の中身は、%dです\n", val );
}

 さっそく、コンパイルして実行して見ましょう。 どうなりましたか? きっと、下のようになったと思います。

今、変数の中身は、5です

今、変数の中身は、6です

今、変数の中身は、7です

 予想通りの結果でしたね。

 ここで少しprintf( ) の補足説明をしておきましょ う。実行結果から判断しますと、どうやら%d (注11) のところには、二つ目の引数であるval の中身が置き換わってくれているようですね。 つまり、printf という関数の場合、二つ目(以降)の引数は、一つ目の引数に対する補足説明の様なものですね。


– 図5 –

< 前のページへ
お問い合わせ
  • ようかん
  • SG Labs(エスジー ラボ)
  • ITERACY
  • RiceLog(ライスログ)
  • Salesforce導入コンサルティング
  • SES営業向け用語講座

Pagetop