打开主菜单

C++/變數及資料型態

< C++

變數,可以想像成是一個箱子,在裡面放一個數字,而我們隨時可以將這個數字拿出來使用或做修改。

簡介编辑

變數可以儲存數字、字元、布林值等等數值,但對於電腦來說,這些都是數字,因為電腦只用0與1在工作,而要把數字可以轉換成0與1是很容易的:

十進位

位值

100 10 1
102 101 100
二進位

位值

4 2 1
22 21 20

將其轉換成較好理解的方式就是:十進位的數字是若干的硬幣,將其填入格子中,同一直排必須完全填滿或完全不填,如下表所示。

12個銅板
O X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

O
O
O
O O
O O
O O
O O
1 1 0 0

所以1210=11002

既然數字可以轉換成電流的開關儲存,那就只要把其他東西轉換成數字較好了,最簡單的像是:布林值可以轉換成0和1;字元可以用編號的方式,例如'+'是2316

使用编辑

建立编辑

int i;

那麼多種的資料型態都可以儲存,所以在宣告一個變數時需要告訴電腦它儲存的是什麼,這是這個語言的設定。所以當然也有一些語言是不用告訴電腦「資料型態(又稱資料型別)」的,例如JavaScript:

var i;

你會發現,var是「變數」的縮寫,那麼int又是什麼(不是感嘆詞)?底下將會介紹大部分資料型別,以及一些「修飾子(又稱修飾詞)」。

資料型別[延伸]
型別 中文 備註 大小 基本?
int 整數 -2147483648 ~ +2147483647 4 O
shortshort int 短整數 -32768 ~ +32767 2 X
longlong int 長整數 通常與整數相同,看系統等等 4 或 ??? X
char 字元 -128 ~ +127ASCII字元) 1 O
bool 布林值 true(非零值) & false(零) 1 O
float 單精度浮點數 ±1038 ~ ±10-38,誤差較大,建議用double 4 O
double 倍精度浮點數 ±10308 ~ ±10-308,浮點數一般用它 8 O
double double 倍倍精度浮點數 不常用又占記憶體空間 ??? X
string 字串 <cstring>中額外定義 ??? X
???(很多,不列舉) ???(無中文) <windows.h>中定義的,是Win API會用的 ??? X
修飾詞
中文 備註
auto 自動 只能用於{}內,無指定時預設,進入區塊內才會被建立,離開區塊才會釋放空間
static 靜態 要等所有程式執行結束才會釋放空間,沒設初始值預設0
extern 外部 沒設初始值預設0,全域變數,在區塊外使用可以省略,函數內部宣告不會實際分配記憶體,外面要有一個同名變數的宣告
static extern 靜態外部 靜態加上外部,但僅限於同意檔案使用
register 暫存器 用CPU的暫存器儲存,讀寫較快,對於頻繁存取的變數是較好的選擇,但因為暫存器空間有限,當其超過上限,系統會自動將它換成一般變數