2.1 什麼是資料型態?
¶同一串 0 和 1,要靠型態才知道怎麼讀
承上一段:記憶體裡存的,其實就是一長串 0 和 1。舉個具體的例子——假設某一小段存的是這樣一串:
01000001
- 如果你告訴電腦「這是一個
char(字元)」,它會把這串 0 和 1 讀成字元'A' - 如果你告訴電腦「這是一個
int(整數)」,它會把同一串 0 和 1 讀成數字65
同一串 0 和 1,因為型態不同,意思就完全不一樣——就像剛剛那個 T,要先知道它屬於哪一套符號系統才讀得懂。所以 C++ 規定:程式裡用到的每一筆資料,都一定要先講清楚它是哪一種型態。
(這串 0 和 1 怎麼計量、一筆資料到底佔多大,下一節就會講。)
¶型態決定了三件事
一旦知道一筆資料的型態,電腦就能決定:
- 怎麼解讀它存的那串 0 和 1:是整數?小數?字元?還是真假值?
- 它要佔多少記憶體(下一節會講)
- 可以對它做哪些運算:例如整數能加減乘除
例如:
int→ 存整數,可以加減乘除char→ 存單一個字元(像'A')bool→ 存真假值(true/false)
¶C++ 基本資料型態
基本資料型態是 C++ 內建、最基礎的幾種型態,每一種都用來存一個簡單的值(一個整數、一個小數、一個字元、一個真假值…)。先把下面這幾種學好;之後還會學到用它們進一步建構出來的進階型態,例如把一串「同一種型態」的值排在一起的陣列。
像「字串(string)」這種能裝一整串文字的,就不是基本資料型態,而是進階型態——本書(上冊)著重最基礎的語法,string 留到下冊再教。同樣地,浮點數(double)的小數精度、誤差等較瑣碎的細節,上冊只會用到最基本的部分,深入內容也留到下冊;上冊的重點放在 if、迴圈、陣列這些基本的程式邏輯。
| 型態 | 用途 | 範例 |
|---|---|---|
int |
整數 | int age = 18; |
double |
小數(浮點數) | double pi = 3.14159; |
char |
單一字元 | char c = 'A'; |
bool |
真/假 | bool flag = true; |