◆◆◆◆アマゾンで購入する◆◆◆

5.データの入れ物 変数の考え方 
           内    容
なぜ変数が必要か?
入れ物といっても・・・
変数の意味のまとめ
型は種類と大きさ
変数に値を入れる
簡単なプログラム
キーボードからの入力
計算式を使う
[演習]


なぜ変数が必要か?

プログラムは,何らかのデータを加工したり,
計算を行います。

したがって計算途上で,
一時的に,データを保管する入れ物が必要です。

この,データを保管する入れ物を
変数」と呼びます。
      

入れ物といっても…

入れ物といっても
コップはあるし,財布はあるし,灰皿もあります。

この入れ物の種類を
データの型」と呼びます。

変数には決められた型のデータしか保管できません。

えっ?
お札を丸めると,コップに入れることができるって?

同変数に入るよう,何らかの操作を施すことを,
型変換」と呼びます。

  丸める操作 = 型変換

すなわち,型変換を施せば,
別の型の変数に入れることができます。

一方,大きな入れ物には,小さな物を
複数個入れることができます。

          

これは,「
共用体」の考え方で実現されます。

この書き方については,
「11章 構造体と共用体」でお話します。
今のところ,お待ち下さい。

変数の意味のまとめ

@変数とは,データを入れる入れ物(容器)である。

A変数には,どんなデータを入れることができるかを示す型がある。

B型変換すれば,他の型の変数にデータを入れることができる。

この3点は,他の言語でも共通です。

型は,種類と大きさ

ペットボトルには液状のものを入れることができますが,
500CCのペットボトルと1リットルのペットボトルでは
入る量が異なります。

         

ただし,標準的な型のサイズは,処理系によって異なりますが,
以下のような種類があります。

 ● char   文字型
 ● int    整数
 ● long   倍長整数
 ● float   単精度浮動小数点
 ● double  倍精度浮動小数点
 ● String^ 文字列型(ハット(^)に注:C++のとき)

この他,

 ● unsigned int
 ● unsigned long

等もあります。

なお,標準的な型のサイズが異なることで,
ある処理系で正常動作していたプログラムが,
別の処理系では,正しい動きをしなくなることもありますので,
注意が必要です。

変数に値を入れる

変数に値を入れる最も簡単な方法は,
代入文です。代入文は次の形で書きます。

  
代入される変数名 = 値または計算式;

この他にも,代入文の形がありますが,
今はこの形を覚えましょう。

例えば,以下のように書きます。

  A = 10; A = 20; C = A;

(問題) Cには,どんな値が入るか?

プラス(+),マイナス(−)等の記号を演算子と呼びます。
式の右辺には,式が許されます

 意味 演算子 例
-------------------------------------------
 乗算  *  C = 20 * 10;  (C の値は 200)
 除算  /  C = 20 / 10;  (C の値は 2)
 余り  %  C = 25 % 10;  (C の値は 5)
 加算  +  C = 20 + 10;  (C の値は 30)
 減算  -  C = 20 - 10;  (C の値は 10)
マイナス -  A = 10; C = -A;(C の値は -10)
プラス  +  A = 10; C = +A;(C の値は 10)

簡単なプログラム

#include "stdafx.h”
int main(int argc, char* argv[])
{
 int a,b; a=10; b=20;
 printf("\n*** a = %d, b = %d",
     a, b);
}


printf関数の第1引数には,
書式を指定することができます。

ここに指定した例では,%dのところに
整数値を文字列に変換したものが表示されます。



よく出てくる書式指定として,以下のようなものがあります。

 ● %d, %I : 整数
 ● %x   : 符号なし16進数
 ● %c   : 単一文字
 ● %s   : 文字列
 ● %f   : 浮動小数点
 ● %e   : 指数表記の浮動小数点

最低限,これくらいの書式指定は覚えておきましょうね。

キーボードからの入力

キーボードから入力するには,scanfを用います。
また,指定した変数に値を受け取りますので,
引数は,参照渡しとします。

#include "stdafx.h"
int main(int argc, char* argv[])
{ int a, b;
 /* 以下の&は,参照渡しを示す */
 /*(ここに値を返す)    */
 printf(“\n a = ”);
 scanf(“%d”, &a);
 printf("\n b = ");
 scanf("%d", &b);
 printf("\n a = %d, b = %d", a, b);
 getchar();getchar();
}


実行すると,

  a =

と表示され,入力待ちになりますので,たとえば,

   10[ENTER]

と入力します。すると,さらに,  

  b =

と表示され,入力待ちになりますので,たとえば,

   20[ENTER]

と入力します。すると,

   a = 10, b = 20

と表示され, a に整数値 10, b に整数値 20 が
設定されたことが分かります。

[発展]

     a =

と表示されている状態で,値と値の間に空白をはさみ,
たとえば,

     10 20[ENTER]

とキーインして,動きを確認してみましょう。

以下のように表示され,
「 b = 」のところでは,入力待ちにはなりません。
  
  a = 10 20[ENTER]

  b =

  a = 10, b = 20

計算式を使う

これまでのプログラムを変更して,
計算式を使ってみましょう。

#include "stdafx.h"
int main(int argc, char* argv[])
{ int a, b, c;
 printf("\n a = ");
 scanf("%d", &a);
 printf("\n b = ");
 scanf("%d", &b);
 c = a + b;
 printf("\n a = %d, b = %d, c = %d",
     a, b, c);
 getchar();getchar();
}

[演習]

(1) 次のような書式,型を使って
  入出力のテストを行いましょう。

 @ %x : 符号なし16進数 (unsigned int)
 A %c : 単一文字(char)
 B %f : 浮動小数点(float)

(2) 加算だけではなく他の演算子も
  使ってみましょう。

     -, *, /, %


 1.C言語の誕生

 2.C言語の仲間たち

 3.新しい言語をすばやく覚えるには

 4.Cでプログラミング

 5.データの入れ物 変数の考え方

 6.注釈・定数

 7.プログラムの実行順序

 8.配列

 9.C言語特有の代入文・制御構造

10.関数の話

11.構造体と共用体

12.ビット演算

13.プログラムの場所をポインタで

14.ファイルの入出力

15.色々な便利な方法