法大奥山研究室

 previous  contents

4.2. shortintlong型変数


 型によって扱える整数の範囲が異なります。型指定子で見た通り,扱える整数の範囲は,

char, short (short int), int, long (long int), long long (long long int)

の順に大きくなります。(扱える整数の範囲の確認方法は,後程見ます。)

 これらの整数型変数の初期化方法は,基本的には,すべて同じです。ただ,char型は ASCII文字を扱うことを想定しているので,「4.1. char型変数」では文字定数による初期化を使いました。ここでは,整数という数を扱うことを前提にした初期化方法を見ます。

/* Example 4.2 */

#include <stdio.h>

int main(void)
{
       int a = 65, b = 0101, c = 0x41;
       long l = 65L, m = 0101L, n = 0x41L;

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

       printf("\t%%ld\t%%lo\t%%lx\n");
       printf("(l)\t%ld\t%lo\t%lx\n", l, l, l);
       printf("(m)\t%ld\t%lo\t%lx\n", m, m, m);
       printf("(n)\t%ld\t%lo\t%lx\n", n, n, n);

       return 0;
}

6501010x41 は「整数定数」と呼ばれているものです(*)。接尾子 Llong型という意味です。65 は10進数の65,0101 は8進数で101,0x41 は16進数で41という意味です。また,printf関数内の変換指定子ですが,long型変数の出力には,%d%odo の前に l を付します。また,\t は水平タブです。これは文字定数に使えるエスケープ文字です。

 実行結果です。

        %d      %o      %x
(a)     65      101     41
(b)     65      101     41
(c)     65      101     41
        %ld     %lo     %lx
(l)     65      101     41
(m)     65      101     41
(n)     65      101     41

すべての変数が整数 65 を意味しています。

*「整数定数」については「付録 文字定数,整数定数,浮動小数点定数」を参照。


 previous  contents