數(shù)據(jù)類型

2018-08-12 22:03 更新

數(shù)據(jù)類型

當(dāng)在使用任何編程語言編程時,您需要使用各種不同的變量來存儲不同的信息。變量只是讓內(nèi)存預(yù)留位置來存儲一些值。這意味著,當(dāng)你創(chuàng)建一個變量時在內(nèi)存中會保留一些空間給該變量。

你可能喜歡使用像字符類型,寬字符,整數(shù),浮點數(shù),雙精度浮點數(shù),布爾類型等各種數(shù)據(jù)類型來存儲信息。操作系統(tǒng)基于變量的數(shù)據(jù)類型來分配內(nèi)存空間和決定什么可以存儲在該保留內(nèi)存區(qū)域。

基本內(nèi)置類型

C++ 給程序員提供了一系列豐富的內(nèi)置類型以及用戶定義的數(shù)據(jù)類型。下表列出了七個基本的 C++ 數(shù)據(jù)類型:

類型 關(guān)鍵字
Boolean bool
Character char
Integer int
Floating point float
Double floating point double
Valueless void
Wide character wchar_t

上面的幾個基本類型可以使用一個或多個如下的修飾符這來修飾:

  • signed
  • unsigned
  • short
  • long

下面的表顯示了變量類型,該類型的值在內(nèi)存中需要多少內(nèi)存空間來存儲,該類型能夠表示的最大值和最小值。

類型 長度 范圍
char 1byte -127 - 127 或者 0 - 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 位數(shù)字)
double 8bytes +/- 1.7e +/- 308 (~15 位數(shù)字)
long double 8bytes +/- 1.7e +/- 308 (~15 位數(shù)字)
wchar_t 2 或者 4 bytes 1 個寬字符

變量類型占用空間的實際大小可能和上表展示的有些不同,這取決于您所使用的編譯器和電腦操作系統(tǒng)。

下面示例將輸出各種數(shù)據(jù)類型在您的計算機(jī)上實際占用的內(nèi)存空間大小。

    #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() 函數(shù)來獲得各種數(shù)據(jù)類型的存儲大小。

上面的代碼編譯和執(zhí)行時,它會產(chǎn)生以下結(jié)果,這個可能會隨著機(jī)器的不同而顯示不同的結(jié)果:

    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 為已經(jīng)存在的數(shù)據(jù)類型起一個新的名稱。下面是一個使用 typedef 定義一個新類型的簡單語法方式:

    typedef type newname;

例如,下面告訴編譯器,feet 是 int 的另一個名字:

    typedef int feet;

現(xiàn)在,下面的聲明是完全合法和創(chuàng)建一個整數(shù)變量稱為 distance:

    feet distance;

枚舉類型

枚舉類型聲明了一個可選的類型名和一組值為零的或多個標(biāo)識符的類型。每個枚舉器是一個常數(shù),它的類型是枚舉。

創(chuàng)建一個枚舉類型需要使用關(guān)鍵字 enum。枚舉類型的一般形式是:

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

在這里,enum-name 是枚舉類型名。list of name 是由逗號分隔開的。

例如,下面的代碼定義了一個稱為 color 的顏色枚舉類型,并且變量 c 的是一個 color 類型的枚舉變量。最后, c 被賦值為 “blue”。

    enum color { red,green,blue} c;
    c = blue;

默認(rèn)情況下,枚舉類型花括號中第一個變量被賦值為 0,第二個變量賦值為 1,第三個賦值為 2,依此類推。但是你也可以給某個指定變量一個初始值。例如,在下面的枚舉類型, green 將會被初始化為 5。

    enum color { red, green=5, blue };

這里,blue 的值將會變成 6,因為每個變量都會比它前一個變量大 1。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號