數據類型時編程的基礎也是須要核心掌握的知識點,要可以分清楚出不一樣數據類型表示的數據以及數據須要定義的數據類型。不一樣的系統或是編程語言,在定義數據類型時可能有所區別,在學習運用時要加以區分,避免混淆,這裏我對數據進行了簡單的區分和總結,加深一下印象。java
8種基本數據類型:byte,short,int,long,float,double,char,boolean。編程
類型 | 描述 | 範圍 |
---|---|---|
byte | 8位,有符號,默認值 0 | -2^7 - 2^7 -1 |
short | 16位,有符號,默認值 0 | -2^15 -2^15 -1 |
int | 32位,有符號,默認值 0 | -2^31 -2^31 -1 |
long | 64位,有符號,默認值 0L | -2^63 -2^63 -1 |
float | 單精度32位,默認值0.0f | |
double | 雙精度64位,默認值0.0d | |
char | 單個16位Unicode字符 | \u0000 -\uffff |
boolean | 一個比特位,false/true | true /false |
引用數據類型:數組,類,接口數組
C語言中有4種類型的數據類型編程語言
類型 | 包含的類型 |
---|---|
基本數據類型(Basic Data Type) | char,int, float, double |
派生數據類型(Derived Data Type) | array, pointer, structure, union |
枚舉數據類型(Enumeration Data Type) | enum |
Void數據類型(void Data Type) | void |
C語言基本數據類型:內存大小可能會根據32位或64位操做系統而有所變化;在沒有標明unsigned狀況下,大多數默認狀況是有符號的。學習
類型 | 描述 | 值範圍 |
---|---|---|
char | 1字節/8位,字符類型 | -128 到 127 |
unsigned char | 1字節/8位,無符號char | 0 到 255 |
short | 2 字節/16位,短整型 | -32,768 到 32,767 |
unsigned short | 2 字節/16位,無符號short | 0 到 65,535 |
int | 4 字節/32位,整型 | -2,147,483,648 到 2,147,483,647 |
unsigned int | 4 字節/32位,無符號int | 0 到 4,294,967,295 |
long | 4 字節/32位,長整型 | -2,147,483,648 到 2,147,483,647 |
unsigned long | 4 字節/32位,無符號long | 0 到 4,294,967,2957 |
float | 4字節,6~7位有效數字 | -3.4E-38 到 3.4E+38 |
double | 8字節,15~16位有效數字 | -1.7E-308 到 1.7E+308 |
long double | 16字節,18~19位有效數字 | -1.2E-4932 到 1.2E+4932 |
注意:C語言自己是沒有bool類型的,通常用int取代或者自定義枚舉。但在C99標準裏面,又定義了bool類型變量,只要引入頭文件 <stdbool.h>,就能在C語言裏面正常使用bool類型。操作系統
總的來講,C++的基本數據類型和C語言的差很少。指針
類型 | 關鍵字 |
---|---|
字符型 | char |
整型 | int |
浮點型 | float/double |
布爾型 | bool |
寬字符型 | wchar_t |
無類型 | void |
能夠使用一個或多個類型修飾符進行修飾:signed,unsigned,short,long。code
類型 | 描述 | 範圍 |
---|---|---|
char | 8位/1 字節 | -128 到 127 或者 0 到 255 |
unsigned char | 8位/1 字節 | 0 到 255 |
int | 32位/4 字節 | -2147483648 到 2147483647 |
unsigned int | 32位/4 字節 | 0 到 4294967295 |
short int | 16位/2 字節 | -32768 到 32767 |
unsigned short int | 16位/2 字節 | 0 到 65,535 |
long int | 64位/8 字節 | -/+9,223,372,036,854,775,808 |
unsigned long int | 64位/8 字節 | 0 到 18,446,744,073,709,551,615 |
float | 4 字節 | +/- 3.4e +/- 38 (~7 個數字) |
double | 8 字節 | +/- 1.7e +/- 308 (~16 個數字) |
long double | 16 字節 | +/- 1.2e +/- 4932 (~19 個數字) |
wchar_t | 2 或 4 字節 | 1 個寬字符 |
補充:在C/C++中能夠使用sizeof()運算符返回數據類型所佔的內存字節,32位系統和64位系統的結果多是不一樣的。下面是一個簡單的對比:接口
數據類型 | 32位編譯器 | 64位編譯器 |
---|---|---|
char | 1個字節 | 1個字節 |
char*(即指針變量) | 4個字節 | 8個字節 |
short int | 2個字節 | 2個字節 |
int | 4個字節 | 4個字節 |
unsigned int | 4個字節 | 4個字節 |
float | 4個字節 | 4個字節 |
double | 8個字節 | 8個字節 |
long | 4個字節 | 8個字節 |
long long | 8個字節 | 8個字節 |
unsigned long | 4個字節 | 8個字節 |