C語言:宣告

變數(variable)宣告(declaration)
C語言變數要使用以前,必須宣告,宣告的格式是:
型別 變數名稱;
例如:
int height;
宣告了一個名稱是height的整數變數。如果要宣告兩個以上的變數,請在變數名稱中間使用逗點,。例如:
int height, width;
宣告了兩個名稱是heightwidth的整數變數。變數名稱的第一個字元可以是底線_或英文字母,後面的字元可以是底線_或英文字母或阿拉伯數字。例如_heightwidth2可以當做變數名稱。
型別(type)
基本型別(primitive type)
除了少數單一型別的程式語言之外,絕大部分的語言有多種型別。C語言有很多型別,型別分基本型別(primitive type)和複合型別(composite type)。這裡先講基本型別:
空(void)
布林值(boolean)
_Bool布林值可算是無號整數(unsigned integer)的一種。只有兩個數值,0及1。0代表偽(false),1代表真(true)。可以用一個位元儲存。
整數(integer)
C語言的整數型別有下列5種: charshortintlong是有長度順序的,依次為char小於或等於short小於或等於int小於或等於long小於或等於long long。例如int是32位元,那麼short最長是32位元,long最短也是32位元。各長度整數所能表示的數字範圍如下:
有號整數範圍無號整數範圍
位元最小值最大值最小值最大值
8-27=-12827-1=127028-1=255
16-215=-32,768215-1=32,7670216-1=65,535
32-231=-2,147,483,648231-1=2,147,483,6470232-1=4,294,967,295
64-263=-9,223,372,036,854,775,808263-1=9,223,372,036,854,775,8070264-1=18,446,744,073,709,551,615
浮點數(floating point)
浮點數就是2進位(binary)的科學記號(scientific notation)。C語言浮點數型別有下列3種: floatdoublelong double是有長度順序的,依次為float小於或等於double小於或等於long double。例如double是64位元,那麼float最長是64位元,long double最短也是64位元。各長度浮點數所能表示的數字範圍如下:
浮點數的範圍
位元指數長度分數長度最小值最大值
32823±2-126≒1.18×10-38≒±2128≒3.4×1038
641152±2-1022≒2.23×10-308≒±21024≒1.8×10308
801564±2-16382≒3.65×10-4951≒±216384≒1.19×104932
12815112±2-16382≒3.65×10-4951≒±216384≒1.19×104932
複數(complex)
著名的Fortran語言有複數型別,C語言也有兩種有複數型別:
複合型別(compund type)
C語言有以下複合型別:
指標(pointer)
陣列(array)
列舉(enumeration)
結構(structure)
共用區(union)
位元欄(bitfield)
指定(assignment)
變數可以獲得不同的值(value)。要獲得不同的值,得使用破壞性指定(destructive assignment)。請看下面例子:
x=8; //x的值指定成8
x=3; //x的值指定成3,原來x的值8消失的無影無蹤

以上的例子稱為破壞性指定。
初始化(initialization)
在宣告變數時同使可以指定變數的值,稱為初始值(initial value)。宣告的格式為:
型別 變數名稱=初始值;
例如:
int height=170;
就是將整數變數height一開始的值指定成170。如果要指定兩個以上的變數的初始值,請在變數名稱中間使用逗點,。例如:
int height=170, width=60;
C語言裡,一個沒有初始值的變數一開始的值是垃圾值(garbage value),並不知道會有什麼值。所以指定初始值是非常重要的。
儲存等級指定字(storage class specifier)
auto儲存等級指定字(auto storage class specifier)
extern儲存等級指定字(extern storage class specifier)
register儲存等級指定字(register storage class specifier)
static儲存等級指定字(static storage class specifier)
型別修飾字(const type qualifier)
const型別修飾字(const type qualifier)
C語言很奇怪,常數(constant)是一種特殊的變數。宣告的格式為:
const 型別 常數名稱=初始值;
例如:
const int height=170;
就是將整數常數height一開始的值指定成170。如果要指定兩個以上的常數的初始值,請在常數名稱中間使用逗點,。例如:
const int height=170, width=60;
常數無法使用破壞性指定,它的值永遠是初始值。對常數使用破壞性指定會產生編譯錯誤(compile error)。所以常數宣告對於程式的正確性多一份保障,因為編譯器(compiler)會確保常數不會被破壞性指定。
volatile型別修飾字(volatile type qualifier)
restrict型別修飾字(restrict type qualifier)