Cplusplus-cpp-data-types

提供:Dev Guides
移動先:案内検索

C ++データ型

任意の言語でプログラムを作成する際、さまざまな変数を使用してさまざまな情報を保存する必要があります。 変数は、値を保存するために予約されたメモリの場所に他なりません。 これは、変数を作成するときに、メモリ内にスペースを確保することを意味します。

文字、ワイド文字、整数、浮動小数点、二重浮動小数点、ブールなどのさまざまなデータ型の情報を保存することができます。 変数のデータ型に基づいて、オペレーティングシステムはメモリを割り当て、予約メモリに保存できるものを決定します。

プリミティブな組み込み型

C は、プログラマーに豊富な品揃えの組み込みおよびユーザー定義のデータ型を提供します。 次の表は、7つの基本的なC データ型を示しています-

Type Keyword
Boolean bool
Character char
Integer int
Floating point float
Double floating point double
Valueless void
Wide character wchar_t

基本的なタイプのいくつかは、これらのタイプ修飾子の1つ以上を使用して変更することができます-

  • 署名済み
  • 署名なし
  • ショート
  • long

次の表は、変数の種類、メモリに値を保存するのに必要なメモリ量、およびそのような種類の変数に保存できる最大値と最小値を示しています。

Type Typical Bit Width Typical Range
char 1byte -127 to 127 or 0 to 255
unsigned char 1byte 0 to 255
signed char 1byte -127 to 127
int 4bytes -2147483648 to 2147483647
unsigned int 4bytes 0 to 4294967295
signed int 4bytes -2147483648 to 2147483647
short int 2bytes -32768 to 32767
unsigned short int 2bytes 0 to 65,535
signed short int 2bytes -32768 to 32767
long int 8bytes -2,147,483,648 to 2,147,483,647
signed long int 8bytes same as long int
unsigned long int 8bytes 0 to 4,294,967,295
long long int 8bytes -(2^63) to (2^63)-1
unsigned long long int 8bytes 0 to 18,446,744,073,709,551,615
float 4bytes
double 8bytes
long double 12bytes
wchar_t 2 or 4 bytes 1 wide character

変数のサイズは、コンパイラーと使用しているコンピューターによって、上記の表に示されているものと異なる場合があります。

以下は、コンピューター上のさまざまなデータ型の正しいサイズを生成する例です。

#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を使用して新しい型を定義する簡単な構文です-
typedef type newname;

たとえば、以下はフィートがintの別の名前であることをコンパイラに伝えます-

typedef int feet;

さて、次の宣言は完全に正当であり、距離と呼ばれる整数変数を作成します-

feet distance;

列挙型

列挙型は、オプションの型名と、型の値として使用できるゼロ個以上の識別子のセットを宣言します。 各列挙子は、型が列挙である定数です。

列挙を作成するには、キーワード enum を使用する必要があります。 列挙型の一般的な形式は-

enum enum-name { list of names } var-list;

ここで、enum-nameは列挙型の名前です。 名前のリストはカンマ区切りです。

たとえば、次のコードは、colorsと呼ばれる色の列挙と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 };

ここで、 blue の値は6です。これは、各名前がその前の名前よりも1つ大きいためです。