鍍金池/ 教程/ C/ 數(shù)據(jù)類型
動(dòng)態(tài)內(nèi)存
類和對(duì)象
接口 (抽象類)
結(jié)構(gòu)體
循環(huán)的類型
函數(shù)
數(shù)字
日期和時(shí)間
基本語法
多態(tài)
數(shù)據(jù)抽象
注釋
命名空間
字符串
預(yù)處理器
決策語句
修飾符的類型
鍙橀噺綾誨瀷
基本輸入輸出
操作符
數(shù)組
模板
多線程
繼承
Web 編程
信號(hào)處理
指針
存儲(chǔ)類型
概述
引用
常量
異常處理
開發(fā)環(huán)境
重載
變量作用域
數(shù)據(jù)類型
數(shù)據(jù)封裝
文件和流

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

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

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

基本內(nèi)置類型

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

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

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

  • signed
  • unsigned
  • short
  • long

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

類型 長度 范圍
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 個(gè)寬字符

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

下面示例將輸出各種數(shù)據(jù)類型在您的計(jì)算機(jī)上實(shí)際占用的內(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;
    }

這個(gè)示例使用 endl,這個(gè)表示在每一行之后插入一個(gè)換行符,<< 操作符被用來將多個(gè)值輸出到屏幕上。我們也使用 sizeof() 函數(shù)來獲得各種數(shù)據(jù)類型的存儲(chǔ)大小。

上面的代碼編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果,這個(gè)可能會(huì)隨著機(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ù)類型起一個(gè)新的名稱。下面是一個(gè)使用 typedef 定義一個(gè)新類型的簡單語法方式:

    typedef type newname;

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

    typedef int feet;

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

    feet distance;

枚舉類型

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

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

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

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

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

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

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

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

這里,blue 的值將會(huì)變成 6,因?yàn)槊總€(gè)變量都會(huì)比它前一個(gè)變量大 1。

上一篇:修飾符的類型下一篇:鍙橀噺綾誨瀷