C++數據類型
當使用任何編程語言編程,需要使用不同的變量來存儲各種信息。變量是保留在內存位置用來存儲值。這意味著,當創建一個變量,需要在內存中保留一些空間。
想要存儲像字符的各種數據類型,寬字符,整數,浮點,雙浮點,布爾等。基於一個變量的數據類型的信息,在操作係統中分配內存,並決定什麼可以被存儲在保留的內存。
原始的內置類型:
C++為程序員提供內置以及用戶定義的數據類型豐富的類型。下表列出了下來七個基本C++數據類型:
類型 | 關鍵字 |
---|---|
布爾 | bool |
字符 | char |
整型 | int |
浮點 | float |
雙浮點 | double |
無值 | void |
寬字符 | wchar_t |
幾種的基本類型可以使用一種這些類型的修飾符或多個被修改:
-
signed
-
unsigned
-
short
-
long
下表顯示的變量類型,該值需要多少內存存儲在存儲器中,並且什麼是可以存儲在這種類型的變量的最大和最小值。
類型 | 典型位寬 | 典型範圍 |
---|---|---|
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 | Range | 0 to 65,535 |
signed short int | Range | -32768 to 32767 |
long int | 4bytes | -2,147,483,647 to 2,147,483,647 |
signed long int | 4bytes | same as long int |
unsigned long int | 4bytes | 0 to 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 |
變量的大小如上表顯示,這取決於編譯器和正在使用的計算機而不同。
下麵是一個例子,這將產生的各種數據類型的正確大小的計算機上。
#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;
例如,下麵告訴編譯器,feet是另一個int名字:
typedef int feet;
現在,下麵的聲明是完全合法的,並創建一個整型變量稱為distance:
feet distance;
枚舉類型:
枚舉類型聲明的可選類型名和一組零個或多個標識符可以被用作類型的值。每個枚舉是一個常量,其類型是枚舉。
要創建一個枚舉需要使用關鍵字enum。枚舉類型的一般形式是:
enum enum-name { list of names } var-list;
在這裡,enum-name是枚舉的類型名稱。名稱的列表以逗號分隔。
例如,下麵的代碼定義的顏色稱為colors枚舉和c型顏色的變量。最後,c的分配值為“blue”。
enum color { red, green, blue } c; c = blue;
缺省情況下,第一個名字的值是0,第二個名字的值為1,第三的值為2,依此類推。但是可以通過添加一個初始化給出一個名稱的特定值。例如,在下麵列舉,green的值為5。
enum color { red, green=5, blue };
這裡,blue 的值為6,因為每個名字會比它前麵的值大1。