データ型
スポンサーリンク
基本型
C の基本型は,char, int, float, double の 4 つだけです。簡単!
基本型 | 説明 |
---|---|
char | 文字型 (整数型の一種) |
int | 整数型 |
float | 単精度浮動小数点数型 |
double | 倍精度浮動小数点数型 |
とは言え実際には,符号の有無や型のサイズを表す型指定子を付けることで,これより多くの型が利用できます。
型指定子 | 意味 | 適用可能な型 | 例 |
---|---|---|---|
signed | 符号付き | char, int | signed char |
unsigned | 符号なし | char, int | unsigned int |
short | 小さい型 | int | short int |
long | 大きい型 | int, double | long double |
型指定子を複数組み合わせて,unsigned long int のような型を利用することもできます。
また,型指定子の後の int は省略可能です。
例えば,short int は short,unsigned long int は unsigned long と省略できます
符号の有無や型のサイズに関して,標準規格では次のように定められています。
- char のサイズは 1 バイト。
- int はデフォルトでは符号付き。
リテラル
各種データのリテラルの例は次の通りです。
種別 | リテラルの例 | 備考 |
---|---|---|
整数 | 123, +123, -123 012 0x1a, 0x1A, 0X1a, 0X1A |
8 進数の 12 16 進数の 1A |
実数 | 3.14, +3.14, -3.14 3. .14 1.23e5, 1.23E5, 1.23e+5, 1.23e-5 |
3.0 に同じ 0.14 に同じ 指数表記 |
文字 | 'a' '\n' | 改行文字 |
文字列 | "abc\n" "" | 空文字列 |
整数リテラルの 012 は 8 進数の 12,0x1A は 16 進数の 1A を表します。
各種リテラルには,データ型を表す接尾辞を付加することができます。
種別 | リテラルの例 | 型 |
---|---|---|
整数 | 123 123u, 123U 123l, 123L 123ul, 123uL, 123Ul, 123UL |
int unsigned int long unsigned long |
実数 | 1.23 1.23f, 1.23F 1.23l, 1.23L |
double float long double |
文字/文字列
文字リテラルはシングルクォート '...' で,文字列リテラルはダブルクォート "..." で囲って表します。
いずれも \n や \t などの各種エスケープシーケンスが利用できます。
ES | 説明 |
---|---|
\a | ベル |
\b | バックスペース |
\f | フォームフィード |
\n | ラインフィード |
\r | キャリッジリターン |
\t | 水平タブ |
\v | 垂直タブ |
\' | シングルクォーテーション |
\" | ダブルクォーテーション |
\? | クエスチョンマーク |
\\ | バックスラッシュ |
\0 | ヌル文字 |
\ooo | 文字コードが 8 進数で ooo の文字 (例: \005) |
\xhh | 文字コードが 16 進数で hh の文字 (例: \x0a) |
typedef 宣言
typedef 宣言によって,型に別名を付けることができます。
例えば,unsigned int に uint という別名を付けるには次のようにします。
#include <stdio.h>
typedef unsigned int uint;
int main(void)
{
uint a = 123; /* unsigned int a = 123; に同じ */
return 0;
}
スポンサーリンク