C語言:字面常數

字面常數(literal)
任何語言都有字面常數,否則程式無法寫出來。
基本型別
C語言有很多型別,型別分基本型別(primitive type)和複合型別(composite type)。這裡只講基本型別: char,short,int,long是有長度順序的,依次為char小於或等於short小於或等於int小於或等於long,例如int是32位元,那麼short最長是32位元,long最短也是32位元。各長度整數及浮點數所能表示的數字範圍如下:
有號整數的範圍
長度最小數最大數
8-27=-12827-1=127
16-215=-32,768215-1=32,767
32-231=-2,147,483,648231-1=2,147,483,647
64-263=-9,223,372,036,854,775,808263-1=9,223,372,036,854,775,807
無號整數的範圍
長度最小數最大數
8028-1=255
160216-1=65,535
320232-1=4,294,967,295
640264-1=18,446,744,073,709,551,615
浮點數的範圍
長度最小數最大數
32±2-126≒±2128
64±2-1022≒±21024
破壞性指定(destructive assignment)
變數可以獲得不同的值(value)。要獲得不同的值,得使用破壞性指定。請看下面例子:
x = 8; //x的值指定成8
x = 3; //x的值指定成3,原來x的值8消失的無影無蹤
以上的例子稱為破壞性指定。
初始值(initial value)
在宣告變數時同使可以指定變數的值,稱為初始值。宣告的格式為:
型別 變數名稱 = 初始值;
例如:
int height = 170;
就是將整數變數height一開始的值指定成170。如果要指定兩個以上的變數的初始值,請在變數名稱中間使用逗點,。例如:
int height = 170, width = 60;
C語言裡,一個沒有初始值的變數一開始的值是垃圾值(garbage value),並不知道會有什麼值。所以指定初始值是非常重要的。
常數(constant)
C語言很奇怪,常數是一種特殊的變數。宣告的格式為:
const 型別 變數名稱 = 初始值;
例如:
const int height = 170;
就是將整數常數height一開始的值指定成170。如果要指定兩個以上的變數的初始值,請在變數名稱中間使用逗點,。例如:
const int height = 170, width = 60;
常數無法使用破壞性指定,它的值永遠是初始值。對常數使用破壞性指定會產生編譯錯誤(compile error)。所以常數宣告對於程式的正確性多一份保障,因為編譯器(compiler)會確保常數不會被破壞性指定。