1-03. データ型
公開日: 18:17 1. 基本編/1-03. データ型
どのプログラミング言語においても様々な情報を保存するために、様々な変数を使う必要があります。変数は、値を格納するために予約されたメモリ位置に過ぎません。これは、変数を作成するときはメモリ内にいくつかのスペースを確保する必要があることを意味します。あなたは文字、ワイド文字、整数、浮動小数点、倍精度浮動小数点、ブール値などのさまざまなデータ型の情報を保存したいでしょう。変数のデータ型に基づいてオペレーティングシステムはメモリを割り当て、確保されたメモリに何を格納するかを決定します。
C++に組み込まれている基本的な型
C++にはユーザ定義データ型はもちろん、豊富な型が組み込まれています。次のリストはC++の基本的な型です。
型 | キーワード |
---|---|
真偽 | bool |
文字 | char |
整数 | int |
浮動小数 | float |
実数 | double |
型なし | void |
ワイド文字 | wchar_t |
いくつかの基本的な型は次のような修飾子を1つ以上使うことで変更できます。
- signed
- unsigned
- short
- long
下記は変数の型が、値を格納するのにどれだけメモリが必要か、その型が格納できる最大値と最小値の一覧です。
Type | Typical Bit Width | Typical Range |
---|---|---|
char | 1byte | -127 ~ 127 または ~ to 255 |
unsigned char | 1byte | 0 ~ 255 |
signed char | 1byte | -127 ~ 127 |
int | 4bytes | -2147483648 ~ 2147483647 |
unsigned int | 4bytes | 0 ~ 4294967295 |
signed int | 4bytes | -2147483648 ~ 2147483647 |
short int | 2bytes | -32768 ~ 32767 |
unsigned short int | Range | 0 ~ 65,535 |
signed short int | Range | -32768 ~ 32767 |
long int | 4bytes | -2,147,483,647 ~ 2,147,483,647 |
signed long int | 4bytes | long intと同じ |
unsigned long int | 4bytes | 0 ~ 4,294,967,295 |
float | 4bytes | +/- 3.4e +/- 38 (~7 digits) |
double | 8bytes | +/- 1.7e +/- 308 (~15 digits) |
long double | 8bytes | +/- 1.7e +/- 308 (~15 digits) |
wchar_t | 2 or 4 bytes | 1 wide character |
変数のサイズは上の一覧と異なる可能性があり、コンパイラやコンピュータに依存します。
次のサンプルコードは、使用しているコンピュータの正しいデータサイズを出力するものです。
この例ではendl;を使い各行の後に改行文字を挿入し、複数の値を画面に渡すのに<<演算子が使われています。また、sizeof()演算子を使い様々なデータ型のサイズを取得しています。
上のコードをコンパイルし実行すると、使用しているPCによって異なる結果が得られます
Size of char : 1
Size of int : 4
Size of short int : 2
Size of long int : 4
Size of float : 4
Size of double : 8
Size of wchar_t : 2
typedefによる宣言
typedefを使って既存の型に新しい名前をつけることができます。typedefを使って新しい型を定義する簡単な構文は次のとおりです。typedef type newname;次の例は、コンパイラにfeetはintの別名であることを伝えます。
typedef int feet;これで、次の宣言は完全に正当なdistanceという名前のint型整数を作成します。
feet distance;
列挙体
列挙体は、任意の型名と、型の値として使われる0個以上の識別子のセットを宣言します。列挙体をつくるには、enumキーワードが必要です。一般的な列挙体の形式はenum enum-name { 名前のリスト } var-list;となります。enum-nameは列挙体の型の名前です。名前のリストはコンマで句切られます。
例として、次のコードは色の列挙体とcolor型の変数cを定義します。最終的に、cにはblue変数が割り当てられます。
enum color { red, green, blue } c; c = blue;標準で、最初の名前の変数は0になり、2番めの名前は値1、3番目の値は2…と続きます。しかし初期化子を加える事で名前に特定の値を与えることも可能です。例えば、次の列挙体は、greenに5の値を与えます。
enum color { red, green=5, blue };それぞれ名前は前のものより1大きくなるので、ここではblueは6の値になります。
0 件のコメント :
コメントを投稿