語法書 / AA 競程語法書 上冊 / 第二單元 / 什麼是資料型態?

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 → 存真假值(truefalse

C++ 基本資料型態

基本資料型態是 C++ 內建、最基礎的幾種型態,每一種都用來存一個簡單的值(一個整數、一個小數、一個字元、一個真假值…)。先把下面這幾種學好;之後還會學到用它們進一步建構出來進階型態,例如把一串「同一種型態」的值排在一起的陣列

像「字串(string)」這種能裝一整串文字的,就不是基本資料型態,而是進階型態——本書(上冊)著重最基礎的語法,string 留到下冊再教。同樣地,浮點數(double)的小數精度、誤差等較瑣碎的細節,上冊只會用到最基本的部分,深入內容也留到下冊;上冊的重點放在 if、迴圈、陣列這些基本的程式邏輯。

型態 用途 範例
int 整數 int age = 18;
double 小數(浮點數) double pi = 3.14159;
char 單一字元 char c = 'A';
bool 真/假 bool flag = true;