學習筆記:不一樣編程語言的數據類型總結區分

數據類型時編程的基礎也是須要核心掌握的知識點,要可以分清楚出不一樣數據類型表示的數據以及數據須要定義的數據類型。不一樣的系統或是編程語言,在定義數據類型時可能有所區別,在學習運用時要加以區分,避免混淆,這裏我對數據進行了簡單的區分和總結,加深一下印象。java

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語言數據類型

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++的基本數據類型和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個字節
相關文章
相關標籤/搜索