標籤:
C的資料 其實和其他語言一樣的。C99無非增加了幾個新的資料類型。
基本可以分為以下:
- 實數
- 字元
- 邏輯(到後面 其實 這個就是 整數類型的一種[short int]) 王爽老師的名言:以後用到的知識以後再學。
- 其他類型
實數包括什嗎?
- 整數 如:12345... 整數在C語言分為:
- 長整數: long int 在記憶體中占位元組 8個
- 整數:int 在記憶體中占位元組 4個
- 短整數:short int 在記憶體中占位元組 2個
- 超長整數:long long int 在記憶體中占位元組 16個 這是C99標準新出
其實把新出的這個 long long int沒必要。我們又不是科學家 普通的計算 int就足夠我們用了的。很少有情況要用 long int
重點:
還有一點要講 這些 都分 有 符號 和無 符號 類型。
很簡單。有符號的 就有負數
沒符號的 就沒負數
但是他們的不同點就是 長短一樣。
打個比方:
1~100 是100個數字對吧
-49~50 是不是也是100個數字? 這個不好解釋想想就明白了
因為總共 100個數 你分給誰也改變不了的 不是嗎?
- 小數 如:1.2 1.3 568.123
- 單精確度小數:float 在記憶體中占位元組 4個
- 雙精確度小數:Double 在記憶體中占位元組 8個
- 長雙精確度小數:long duoble 在記憶體中占位元組 16個
這些 都分 有 符號 和無 符號 類型。
單精確度小數就是 一個數字 後面的小數儲存的位元
筆者具體也記不清楚了 反正到時候寫程式的時候 肯定會debug
那時候就清晰了
這裡我們假設
float 8位
Double 20位
long Double 50位
123.123456789111111111111[ 小數點後面21位]
那麼這個數字
float 儲存會變成 :123.12345678
Double 儲存會變成 :123.1234567891111111111[儲存20位 最後一位 扔了]
long Double 儲存會變成 :123.12345678911111111111[因為位元是夠的 所以可以全部儲存]
有人會問了 尼瑪XXX float 儲存的不應該是 123.12345679的嗎?
你是不是這麼想的。 8後面的9所以要進1?
我給你的答案是 C語言是 直接扔掉不會 給你進位的!
- 字元 如:‘A‘ ‘B‘ ‘C‘ ‘a‘
- 邏輯 只有兩個:True false 真或者假
- 真:true 在記憶體中占位元組 2個
- 假:flase 在記憶體中占位元組 2個
- 其他資料類型 可以是自訂的。這個以後在講!
以上統統不要記 用到的時候 你就懂了 就是 “容器的大小 和類型而已”
C-2.1 資料