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進数で処理されます。