next up previous
Next: 3 キーボードからの入力方法 Up: c_lang Previous: 1 C言語の学習

Subsections


2 変数の型の定義について

多くのプログラムでは、変数を使用するとき ``型''を指定する必要があります。 (``Octave''では、型指定は行いませんでした。) 具体例として以下のプログラムを見てみましょう。
---------- Program ----------------------
#include <stdio.h>

int main(void);

int main(void)
{
int x;                       <== 型の定義、intは整数型
 x = 3;                      <== 変数xに具体的数値を代入    
  printf("%d", x);           <== 変数xを表示
}

----------- Program END -----------------

``int x''と言うのが型の定義です。``int'' とは``integer(整数)''の事です。 ``x = 3''というのは、代入を表わしており、``イコール''ではありません。 ``イコール''を表現するには c言語の場合も``'==''と書きます。

もちろん変数を2つ以上定義することもできます。

---------- Program ----------------------
#include <stdio.h>

int main(void);

int main(void)
{
int x,y;                   <== 型の複数定義
  x = 3;
  y = 6;                  
  printf(" x plus  y equals  %d.\n", x + y);
  printf(" y devided by x  equals %d.\n", y/x);        
}

----------- Program END -----------------

異る型の変数を複数定義してみましょう。

---------- Program ----------------------
#include <stdio.h>

int main(void);

int main(void)
{
int a, b ;      <== 整数型の定義
float c, d;     <== 浮動小数点型の定義
  a = 10;
  b = 5;                  
  c = 10.0;
  d = 5.0;
  printf(" a devided by b  equals %d.\n", a/b);
  printf(" c devided by d  equals %f.\n", c/d);
  printf("\n");

  printf(" a devided by d  equals %d.\n", a/d);
  printf(" a devided by d  equals %f.\n", a/d);

}

----------- Program END -----------------

以下、実行結果です。

---------- 実行結果 ----------------------
[nisimiya@dhcp32 C_Exercise]$ ./ex713_5
 a divided by b  equals 2.
 c divided by d  equals 2.000000.

 a divided by d  equals 0.
 a divided by d  equals 2.000000.
---------- 実行結果 ここまで -------------

最後の2行の意味、分かりますでしょうか?

  printf(" a devided by d  equals %d.\n", a/d);
というのは、 $(整数)\div (実数)$ の結果を "整数型"で表示させたものです。
    printf(" a devided by d  equals %f.\n", a/d);
というのは、 $(整数)\div (実数)$ の結果を "浮動小数点型"で表示させたもの です。
結果が異ります。 $(整数)\div (実数)$ の結果を "整数型"で表示することはできません。 $(整数)\div (実数)$ の結果は''実数''になるからです。

2.1 演習

$a = 10$, $b=5$を整数型で、 $c=10.0$, $d=5.0$を実数型で定義し、
  1. $(整数)\div (整数)$ を整数型と実数型で表示してプログラムを作成実行 し、何故そうなったか説明せよ。
  2. $(実数)\div (実数)$ を整数型と実数型で表示してプログラムを作成実行 し、何故そうなったか説明せよ。



Nobuo Nishimiya
平成21年6月23日