6 付録

6.1 型のサイズを調べる

型のサイズ(バイト数)は,sizeof(型)関数を使えば,取得できる.
   1 #include <stdio.h>
   2 
   3 int main(void)
   4 {
   5   
   6   printf("----- size ---------\n");
   7   printf("\tchar\t%d\n", sizeof(char));
   8   printf("\tint\t%d\n", sizeof(int));
   9   printf("\tdouble\t%d\n", sizeof(double));
  10 
  11   return 0;
  12 }
\fbox{実行結果}
----- size ---------
        char    1
        int     4
        double  8

6.2 変数のアドレスと内容を調べる

これは,無理矢理変数の中身をみるプログラムである.こんなもの,今は理解できなくて もよい.参考のために載せているだけだ.
   1 #include <stdio.h>
   2 
   3 int main(void)
   4 {
   5 
   6   double x=-7.696151733398438e-4;
   7   int i=55;
   8   char a='a';
   9   unsigned char *p;
  10   
  11   printf("--- char a ---------------\n");
  12   printf("%p\t%02x\n", &a, a);
  13 
  14   p=(unsigned char *)&i;
  15 
  16   printf("--- int i ----------------\n");
  17   printf("%p\t%02x\n", p,   *p);
  18   printf("%p\t%02x\n", p+1, *(p+1));
  19   printf("%p\t%02x\n", p+2, *(p+2));
  20   printf("%p\t%02x\n", p+3, *(p+3));
  21 
  22   p=(unsigned char *)&x;
  23 
  24   printf("--- double x -------------\n");
  25   printf("%p\t%02x\n", p,   *p);
  26   printf("%p\t%02x\n", p+1, *(p+1));
  27   printf("%p\t%02x\n", p+2, *(p+2));
  28   printf("%p\t%02x\n", p+3, *(p+3));
  29   printf("%p\t%02x\n", p+4, *(p+4));
  30   printf("%p\t%02x\n", p+5, *(p+5));
  31   printf("%p\t%02x\n", p+6, *(p+6));
  32   printf("%p\t%02x\n", p+7, *(p+7));
  33 
  34   return 0;
  35 }
\fbox{実行結果}
	--- char a ---------------
	0xbffff6ab      61
	--- int i ----------------
	0xbffff6ac      37
	0xbffff6ad      00
	0xbffff6ae      00
	0xbffff6af      00
	--- double x -------------
	0xbffff6b0      00
	0xbffff6b1      00
	0xbffff6b2      00
	0xbffff6b3      00
	0xbffff6b4      00
	0xbffff6b5      38
	0xbffff6b6      49
	0xbffff6b7      bf



ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成19年2月9日


no counter