C++ データ型
プログラミング言語でプログラミングする場合、さまざまな情報を格納するためにさまざまな変数が必要になります。変数が保持するのは、変数が格納する値のメモリ位置です。これは、変数を作成するときに、メモリ内にある程度のスペースが確保されることを意味します。
さまざまなデータ型 (文字型、ワイド文字型、整数型、浮動小数点型、倍精度浮動小数点型、ブール型など) の情報を保存する必要がある場合があります。オペレーティング システムは、それに応じてメモリを割り当てます。変数のデータ型と、予約されたメモリに何を保存するかを決定します。
C++ は、プログラマーに豊富な組み込みデータ型とユーザー定義のデータ型を提供します。次の表に、7 つの基本的な C++ データ型を示します。
int | float | float
---|
| double | double
| untyped | void
| ワイド文字 | wchar_t
| いくつかの基本的な型は1 つ以上の型修飾子によって変更されました: |
signed | |
unsigned | short |
long | |
次の表は、メモリに値を格納するときにさまざまな変数タイプに必要な占有量と、最大値と最小値を示しています。この型の変数が保存できるもの。
typebit
range char1バイト
-128から127または0から255 unsigned char
1バイト
0〜255 | signed char | 1バイト | -128から127
---|
| int | 4バイト | -2147483647
| un signed int | 4バイト | 0から4 294967295
| signed int | 4バイト | -2147483647
| short int | 2 bytes | -32768~3276 7
| unsigned short int | 範囲 | 0~65,535
| signed short int | 範囲 | - 32767
| long int | 4バイト | -2,147,483,647~2,147,483、647
| signed long int | 4バイト | long intと同じ
| 符号なしlong int | 4バイト | 0から 4,294,967,295
| float | 4 バイト | +/- 3.4e +/- 38 ( ~7 桁)
| double | 8 バイト | +/- 1.7e +/- 308 (~15数字)
| long double | 8バイト | +/- 1.7e + /- 308 (~15桁)
| wchar_t | 2または4バイト | 1ワイドキャラクタ
| 上記の表からわかるように、変数のサイズは使用するコンパイラーとコンピューターによって異なります。
次の例は、コンピューター上のさまざまなデータ型のサイズを出力します。
#include <iostream>
using namespace std;
int main()
{
cout << "Size of char : " << sizeof(char) << endl;
cout << "Size of int : " << sizeof(int) << endl;
cout << "Size of short int : " << sizeof(short int) << endl;
cout << "Size of long int : " << sizeof(long int) << endl;
cout << "Size of float : " << sizeof(float) << endl;
cout << "Size of double : " << sizeof(double) << endl;
cout << "Size of wchar_t : " << sizeof(wchar_t) << endl;
return 0;
}
この例では、各行の後に改行文字を挿入する endl を使用し、複数の値を画面に渡すために << 演算子を使用します。また、sizeof() 関数を使用して、さまざまなデータ型のサイズを取得します。
上記のコードがコンパイルされて実行されると、次の結果が生成されますが、これは使用するコンピューターによって異なります:
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 : 4
既存の型には typedef を使用できます 新しい名前を選択します。 typedef を使用して新しい型を定義するための構文は次のとおりです:
typedef type newname;
たとえば、次のステートメントはコンパイラに feet が int の別の名前であることを伝えます:
typedef int feet;
さて、次の宣言は完全に正当であり、全体の型変数距離:
feet distance;
列挙型は、オプションの型名と、型の値として使用される識別子のセットを宣言します。 0 個以上の識別子をこのタイプの値として使用できます。各列挙子は列挙型の定数です。
列挙を作成するには、キーワード enum を使用する必要があります。列挙型の一般的な形式は次のとおりです:
enum enum-name { list of names } var-list;
ここで、enum-name は列挙型の名前です。名前のリスト { 名前のリスト } はカンマで区切られます。
たとえば、次のコードは色の列挙を定義しており、変数 c の型は color です。最後に、c には値「blue」が割り当てられます。
enum color { red, green, blue } c;
c = blue;
デフォルトでは、最初の名前の値は 0、2 番目の名前の値は 1、3 番目の名前の値は 2 などとなります。ただし、初期値を追加することで、名前に特別な値を割り当てることもできます。たとえば、以下の列挙では、green の値は 5 です。
enum color { red, green=5, blue };
ここで、blueの値は6です。デフォルトでは、各名前はその前の名前より1大きいためです。