1.1変数 Menu へ戻る

  どのような言語系でも必ず数値などの情報を格納するためのメモリ領域が必要
です。C言語では以下の種類の変数型が用意されています。

  int    整数型             32bit
  char   文字型              8bit
  float  浮動小数点型       32bit   小数点を含む数の事
  double 倍精度浮動小数点型 64bit

  実は本当の所まだ色々とあるのですが、ハッキリ言って必要はないです。たま
に float 型を使ったりしますが、ま、普通にしてれば int と char だけで問題
なくすごせます。ただ、Windowsプログラムに入ると一気に数が増えます。例えば
UINT は正の整数(32bit) BOOL は2値型(32bit) BYTE は 正の整数(16bit) ....
いくらでも出てきますが、現在の所は int と char だけで OK 。

  では前のハロープログラムを次のように変更して下さい。わかっていると思い
ますが、コメント /*  〜  */ は書かなくてもかまわないです。

/*  プログラム開始  */
#include <stdio.h>

void main()
{
   int iTest;                     /* iTest という名の変数を宣言 */
   iTest = 50;                    /* iTest に 50 を代入 */


   printf ("Value is %d",iTest);  /* ここで表示させている */
}
/*  プログラム終了 */

  さて、これをビルドして実行しましょう。

Value is 50Press any key to continue

  と表示されたでしょうか?しかしPress any ke...の部分はうっとうしいので
改行を入れましょう。どうやっていれるかというと最後に printf ("\n"); と
入れてみて下さい。この命令は \n というのを表示せよ、という事なのですが、
\n というのは改行のことなのです。

  このように実際には表示できない文字(改行、タブ...)を\と共に書いたのを
エスケープシーケンス文字といいます。ちなみに[\]そのものを現すのには \\
と二回書いて表現します。

  やや話しが脱線しましたが、これで

Value is 50
Press any key to continue

  という風に出力されるようになったはずです。しかし、まだ説明していないの
が printf ("Value is %d",iTest); この部分です。簡単に言うと printf という
のは 一番目の引数 "*****   %d" の %d の部分に二番目の引数の値(今はiTestな
ので 50 )を入れて表示してくれる関数なのです。まあ、そんなにしっかり理解す
る必要は無いと思います。じきにわかると思います。今の所は変数を表示する為
の呪文程度に考えておいて下さい。

  変数の宣言は

[型名] [変数名] ;

  の書式で行います。また応用技?として

int a,b,c;

  という風にも書けます。さらにC言語では;(コロン)を命令の後に書く約束が
ありますので;を書いたら次の命令を書く事ができます。

int a;char c;float f;

  てな具合です。ま、あんまりキレイじゃないのでオススメできませんが。また、
記憶が確かでないのでCかC++か区別が出来ないのですが、少なくともC++では

int c = 0;

  のように宣言と同時に初期化もできます。Cでも出来たかも知れない(^^;
また、変数名は初心者は a とか b とか付ける人が多いですが、ワタクシ声を
大にして言いたいのは「意味のわかる変数名を!」という事です。例えば

int sum;
int vector_x;
int vector_y;

  といった具合にです。ま、a とか b とか付けたい人は好きにしたらいいと思う
のですが、困るのは自分です。また、/* 〜 */ として書くコメント文は大変自分
の為になります。大規模なプロジェクトを作成する場合は出来る限りコメントを付
けていくと後々助けられます。

  また、C++では // で文末までのコメント文として使えます。これは便利なので
オススメです。今はCがベースなので関係ないですが...

  最後に変数名について、ハンガリアン記法のことを説明します。Windows でのア
プリケーションとなると変数の型が一気に増えるというのを前に書きましたが、そ
うなると変数の型がわかりにくくなり、思わぬ所でバグを発生させる事もあります。
そこで、その変数がどんな型なのかを変数の頭につける事をどこかのだれかが提唱
しました。例えば int 型なら iFileSize とか iWidth とかです。また文字列なら
sz- を付けます。(例 szBuffer, szChar)こうする事によって思わぬ事態が起こら
ないようにするのです。ま、バグを出さない為には必死で自衛しなければいけない
という事なのですね。では次回は二項演算についてです。お楽しみに!

i.e. ハンガリアン記法

       接頭記号        データ型・意味
       -------------------------------
          a                配列
          ai               int型配列
          b                論理型
          c                カウント値
          ch               char型
          dw               符号なし長整数(unsigned long)
          f                フラグ
          h                ハンドル
          i                int
          l                long
          lp               longへのポインタ
          lpfn             関数へのポインタ
          lpsz             文字列へのポインタ
          n                整数
          psz              文字列へのポインタ
          sz               文字列
          w                符号なし整数(unsigned int)