変数の宣言
今回のサンプルでは、”int result”ということで、整数型の変数resultを定義しました。変数として宣言できるのは,int以外にも以下のデータ型があります。
char 主に文字を格納するのに使用 int 主に整数を格納するのに使用 float 主に大きくない実数値を格納するのに使用 double 主に大きな実数値を格納するのに使用 |
また、intに関してはshort,longの接頭語を付けることもできます。
(コンパイラによっては、long double型の宣言も可能です)
short int long int long long int |
上記の場合intは省略可能なので、以下の書き方をする事もできます。
short long long long |
さらに、これらの型の接頭語にunsignedを付けることもできます。
unsigned char unsigned int |
このようにたくさんのデータ型を宣言することができます。これらの違いは格納できるデータの範囲が異なる事です。
以下の値は、一般的な場合における保持可能な値の範囲です。
char -128~127 unsigned char 0~255 short -32768~32767 unsigned short 0~65535 int 約-21億~約21億 unsigned int 0~約42億 long int 約-21億~約21億 unsigned long int 0~約42億 float 1.18*10の-38乗~1.18*10の-38乗(有効数値7桁) double 2.23*10の-308乗~1.79*10の-308乗(有効数値15桁) |
取りえる範囲をプログラムで確認する
上記の値は厳密には、使用しているコンパイラによって変わってきます。
具体的な制限値を知りたい場合は、以下のプログラムで確認することができます。
#include <stdio.h> #include <limits.h> main( void ) { printf( "char の範囲 %d~%d\n", CHAR_MIN, CHAR_MAX ); printf( "unsigned char の範囲 0~%u\n", UCHAR_MAX ); printf( "int の範囲 %d~%d\n", INT_MIN, INT_MAX ); printf( "unsigned int の範囲 0~%u\n", UINT_MAX ); printf( "long int の範囲 %ld~%ld\n", LONG_MIN, LONG_MAX ); printf( "unsigned long int の範囲 0~%lu\n", ULONG_MAX ); } |
これを手元の環境(windows7,cygwin)で実行すると、以下の結果となりました。
$ gcc limit.c -o limit; ./limit char の範囲 -128~127 unsigned char の範囲 0~255 int の範囲 -2147483648~2147483647 unsigned int の範囲 0~4294967295 long int の範囲 -2147483648~2147483647 unsigned long int の範囲 0~4294967295 |
関連記事
コメントを残す