変数備忘録

C言語、C++の「変数」は、以下の様になっている。(32bit)

よく使うものは太字で表示しています。

変数 種別 変数名 サイズ 範囲 主な入出力変換指定子
void

(空のデータ)

0byte


 
bool

整数

論理型

1byte

(1bit?)

true(1),false(0)

%d
char
文字 文字型 1byte -128~127及び英数字1文字 %c,%s
unsigned char 符号なし文字型 1byte 0~255及び英数字1文字
short 整数 短長整数型 2byte -32768~32767

(dec)%d

(oct)%o

(hex)%x

(HEX)%X

(unsigned)%u

unsigned short 符号なし短長整数型 2byte 0~65535
int 整数型 4byte

-2,147,483,648~

2,147,483,647

unsigned int 符号なし整数型 4byte

0~

4,294,967,295

long

倍長整数型

(長整数型)

4byte

-2,147,483,648~

2,147,483,647

unsigned long

符号なし倍長整数型

(符号なし長整数型)

4byte

0~

4,294,967,295

long long int

またはlong long

拡張倍長整数型 8byte

-9,223,372,036,854,775,808~

9,223,372,036,854,775,807

unsigned long long int 符号なし拡張倍長整数型 8byte

0~

18,446,744,073,709,551,615

float 実数

 

 

単精度浮動小数点型 4byte

1.175E-38~3.402E+38

(有効桁数6~9桁)

 

(実数)%f

(指数)%e

  
double 倍精度浮動小数点型 8byte

2.225E-308~1.797E+308

(有効桁数15~17桁)

long double

(8byteタイプ)

 

拡張倍精度浮動小数点型

(四倍精度浮動小数点型)

8byte

2.225E-308~1.797E+308

(有効桁数15~17桁)

long double

(10byteタイプ)

10byte

3.362E-4932~1.189E+4932

(有効桁数18~21桁)

long double

(16byteタイプ)

16byte

3.362E-4932~1.189E+4932

(有効桁数33~36桁)

コンパイラーによって一部使用できない、仕様が異なるものがあります。

long doubleは、処理系によってbyteが異なります。 

変数名は、参考書によって呼び方が若干異なります。

doubleの入力変換指定子は、%lf

参考文献:C言語標準文法ポケットリファレンス (技術評論社)

主な変数型の優先順序(右に行くほど優先度が上がります)

char→short→int→long→float→double

●出力変換指定子の補足

整数、実数系の指定子には、オプションとして、表示桁数(空欄、ゼロ詰め)、基数表現、実数系には、小数設定を付与することができます。

 

①表示桁数(整数・実数)

(i)%5d…桁数5桁で表示し、不足分は、空欄で表示します。(例:  125)

 

(ii)%05d…桁数5桁で表示し、不足分は、ゼロ詰めで表示します。(例:00125)

 

(iii)%*d…この書式で記述する場合、%dに対応する整数の引数の前に表示桁数を引数として記述します。不足分は空欄で表示します。

例:printf("%*d",5,i); //iの数字を5桁で表示し、不足分は空欄で表示します。(  125)

 

(iv)%0*d…この書式で記述する場合、%dに対応する整数の引数の前に表示桁数を引数として記述します。不足分はゼロ詰めで表示します。

例:printf("%0*d",5,i); //iの数字を5桁で表示し、不足分はゼロ詰めで表示します。(00125)

 

(v)%-5d…先頭に-を付加することで左詰めで表示されます。(例:125  )


※表示桁数は、桁数を超える桁数の数字を出力する場合は、設定した桁数を無視して全て表示します。

例:printf("%5d",123456); //123456を出力します。

 

②基数表現(整数)

(i)%#o…8進数で表示(先頭に0が付く)【通常%oの場合は0が付かない8進数表示になる】

(ii)%#x…16進数で表示(先頭に0xが付き、小文字で表示)【通常%xの場合は0xが付かない16進数表示になる】

(iii)%#X…16進数で表示(先頭に0Xが付き、大文字で表示)【通常%Xの場合は0Xが付かない16進数表示になる】


③小数設定(実数)

(i)%.2f…小数第3位を四捨五入し小数第2位まで表示します。(123.456→123.46、654.321→654.32)

(ii)%e…指数表示(e)で表示します(123.456→1.234560e+002)

(iii)%E…指数表示(E)で表示します(123.456→1.234560E+002)

(i),(iii)の複合例:123.456→%.3E→1.235E+002)

 

●基数の補足

10進数の表現方法→(20,43,185)先頭に0や0x,0Xを付加しない整数は10進数で処理されます。

8進数の表現方法→(024,053,0271)のように先頭に0を付加すると8進数で処理されます。

16進数の表現方法→(0x14,0x2b,0XB9)のように先頭に0xや0Xを付加すると16進数で処理されます。