學了c然後
c++,然後
mfc/windows,
然後是c#,
其中資料型別很多,由基本型別衍生的
typedef
型別也n
多。熟知基本資料型別是我們正確表達實際問題中各種資料的前提,因此我分類總結了一下
c/c++/windows /c#
基本資料型別,以便日後查閱。
ansi c/c++
基本資料型別:
type
size
數值範圍
無值型void
0 byte
無值域布林型
bool
1 byte
true false
有符號短整型
short [int] /signed short [int]
2 byte
-32768~32767
無符號短整型
unsigned short [int]
2 byte
0~65535
有符號整型
int /signed [int]
4 byte
-2147483648~2147483647
無符號整型
unsigned [int]
4 byte
0~4294967295
有符號長整型
long [int]/signed long [int]
4 byte
-2147483648~2147483647
無符號長整型
unsigned long [int]
4 byte
0~4294967295
long long
8 byte
0~18446744073709552000
有符號字元型
char/signed char
1 byte
-128~127
無符號字元型
unsigned char
1 byte
0~255
寬字元型
wchar_t (unsigned short.)
2 byte
0~65535
單精度浮點型
float
4 byte
-3.4e-38~3.4e+38
雙精度浮點型
double
8 byte
1.7e-308~1.7e+308
long double
8 byte
說明:(1
)型別修飾符
signed
和unsigned
用於修飾字元型和整形。
(2)型別修飾符
short
和long
用於修飾字元型和整形。
(3)當用
signed
和unsigned
、short
和long
修飾int
整形時,
int可省略。
(4)其中
bool
和wchar_t
是c++
特有的。
(5)除上表以外,
c/c++
都可以自定義列舉
enum
、聯合union
和struct
結構體型別。
(6)以上
sizeof
通過windows xp 32
位平台測試,其中某些型別資料的位元組數和數值範圍由作業系統和編譯平台決定。比如
16位機上,
sizeof(int) = 2
,而32
位機上sizeof(int) = 4;32
位機上sizeof(long) = 4
,而64
位機上sizeof(long) = 8
。除此之外,注意
64位機上的
pointer
佔8byte。
(7)void
的字面意思是
「無型別
」,不能用來定義變數。
void
真正發揮的作用在於:
<1>
對函式返回和函式引數的限定,例如自定義既不帶引數也無返回值的函式
void myfunc(void);<2>
定義無型別通用指標
void *
,指向任何型別的資料。
(8)標準
c++庫及
stl還提供了通用資料結構:字串類
string
;向量類模板
vector
;雙端佇列類模板
deque
;鍊錶類模板
list
;容器介面卡堆疊類
stack
(實現先進後出的操作);容器介面卡佇列類
queue
(實現先進先出的操作);集合類
set;多重集合類
multiset
;對映類
map;多重對映類
multimap
;位集合
bitset
;迭代器
iterator (
類似指標的功能
,對容器的內容進行訪問)。
(9)在標準c++
中,int
的定義長度要依靠你的機器的字長,也就是說,如果你的機器是
32位的,
int的長度為
32位,如果你的機器是
64位的,那麼
int的標準長度就是
64位,而vc中
__int64
是為在32
機位機器長實現
64位長度的整形數。
(10)關於
32位平台下的
int和
long
long
從字面上看,應該是
64位才更合理,把
long
當成32
位實在是乙個歷史的包袱。像
c#那樣新起爐灶的程式語言,由於沒有需要支援老**的問題,就把
long
當作64
位來處理了。
在32位平台下,
long
是相對short
而言,long
(short
)型別是
long
(short
)int
型別的簡稱,
sizeof(long) = sizeof(int) = 4
。int
和long
的範圍雖然一樣
,但輸入輸出格式不同
,printf int
的格式為
%d,而
printf long
的格式為
%ld。
考慮到程式的可移植性,還是要將他們區分開來。但當要求的數值範圍為
4byte
時,建議使用
int型別,因為第一版的
c語言只有一種型別,那就是
int。
(11)在
win32 api
及mfc
中為了使型別名稱在語意上更明了,對以上基本型別進行了大量的
typedef
。例如windef.h
中的byte,word,dword。
(12)計算機內部記憶體的基本單位是1byte(8個電子開關)!
參考:
《mfc/windows基本資料型別》
《從char/wchar_t到tchar(1)》
《從char/wchar_t到tchar(2)》
《c# 基本資料型別》
《32位還是64位》
《windows資料型別探幽》
《針對 c/c++ 開發人員採用 windows 64 位》
C C 基本資料型別
學了c然後c 然後mfc windows,然後是c 其中資料型別很多,由基本型別衍生的typedef型別也n多。熟知基本資料型別是我們正確表達實際問題中各種資料的前提,因此我分類總結了一下c c windows c 基本資料型別,以便日後查閱。ansi c c 基本資料型別 說明 1 型別修飾符si...
c c 基本資料型別
整型 浮點型 int main 執行結果 size char 1 short int 2 int 4 long 4 long long int 8 int long long 8 long long 8 三種寫法相同 float 4 double 8型別 大小 byte char 1short 2i...
C C 基本資料型別
整數型別 1.byte型別 分配1個位元組記憶體,佔8位 二進位制 取值範圍是 27 27 1 2.int型別 分配4個位元組記憶體,佔32位,取值範圍 232 232 1.10 9數量級 3.long long型別 分配8個位元組記憶體,佔64位,取值範圍是 264 264 1.10 18數量級 ...