next up previous
Next: インタラクティブなプログラム Up: 計算機言語 I 第 3 Previous: man コマンド

基本データ型についての復習

変数のデータ型について, 関数 printf を使って復習します. 変数の型の主なものは, 次の 4つでした. この講義で使っている処理系では, 各々次のようなサイズになっています.
char
文字型, 1 byte = 8 bit
int
整数型, 4 byte = 32 bit
float
小数(現在ではほとんど使わない) 4 byte = 32 bit
double
小数 8 byte = 64 bit

char 型は文字を代入することが多いというだけで, 1 byte で表わされる範囲 の整数を扱うことも出来ます. 1 byte = 8 bit ですので, 0 から $2^8-1 = 255$ までの整数, または, $-2^7 = -128$ から, $2^7-1 = 127$ までの整数 が扱えます. どちらの範囲の整数が使用できるかは, コンパイラーによって 異なりますので, 0 から 127 までを使うようにするのが無難でしょう.

次のプログラムを見て, 変数の型とその表示の方法について復習しましょう. 重要な事は, プログラムの中でデータを解釈するのは, そのプログラムを 組む人であって, コンピュータではないと言う事です. プログラムの中で配列が出て来ますが, 配列のより詳しい扱い方は, 後の講義で説明します.

/* char, int, double  */
/* File name 3-1.c    */

#include <stdio.h>

main()
{
  char    moji;    
  int     suji;    /* Integer: from -2147483648 to 2147483647 */
  double  shosu;   
  char    bun[80]; 

  moji = '!';      
  suji = 2;        
  shosu = 14.0;    

  sprintf(bun, "is St. Valentine's day.");

  printf("%d %2.0f %s%c \n", suji, shosu, bun, moji);
}

文字列をchar型の配列に代入するには, ライブラリ関数 sprintf を使います (string printf と考えて下さい, string は文字列の意). 使い方は printf と同様ですが, 最初の引き数にchar型の配列の配列名, 2番目の引き数には, 文字列を printf と同じ形式で"で括って書きます. その際, 代入する文字列よりも配列の長さを長くとっておきます.

注意
sprintf(bun, "is St. Valentine's day.");
の部分は
bun = "is St Valentine's day.";
とすることは出来ません. すなわち, 配列の代入はできません.
その他の部分のプログラムの説明はコメントに書いてある通りです. 上のプログラムをタイプして実行してみて下さい.

次に文字型変数に整数を代入して出力する例をみてみましょう. 次のプログラムを良く読んで出力結果を 予想して下さい, それから実際に作成して実行してみて下さい. やってみるとわかるように, 文字型変数に代入した'文字'は対応するコード (整数)を値として持っています.



注意 この講義で使っている C コンパイラの日本語の扱いは 不完全なようなので, printf の文字列は全て英文にしてあります.

/* File name 3-2.c */

#include <stdio.h>

main()
{
  char    a, b, c, one, two, three;

  a = 65; b = 66; c = 67; 

  printf("%d %d %d\n", a, b, c); 
  printf("%x %x %x\n", a, b, c); 
  printf("%c %c %c\n", a, b, c); 


  one = 0x31;
  two = 0x32;
  three = 0x33;

  printf("%d %d %d\n", one, two, three);
  printf("%c %c %c\n", one, two, three);
}



Next: インタラクティブなプログラム Up: 計算機言語 I 第 3 Previous: man コマンド