Download presentation
Presentation is loading. Please wait.
1
第3章 變數、常數與資料型態 3-1 C語言的識別字 3-2 變數的宣告與初值 3-3 指定敘述 3-4 C語言的資料型態
3-5 定義符號常數
2
3-1 C語言的識別字-說明 識別字名稱(Identifier Names)是指C語言的變數、函數、標籤和各種使用者自訂資料型態的名稱。
程式設計者在撰寫程式時,需要替這些識別字命名。
3
3-1 C語言的識別字-命名語法 名稱是一個合法的「識別字」(Identifiers),識別字是使用英文字母開頭,不限長度,包含字母、數字和底線「_」字元組成的名稱。C語言的識別字至少前31個字元是有效字元。換句話說,前31個字元不同,就表示是不同的識別字,有些C語言編譯程式識別的有效字元還更長,例如:Borland C++ Builder可以識別前250個字元。 名稱區分英文字母的大小寫,例如:count、Count和COUNT屬於不同的識別字。 名稱不能使用C語法的「關鍵字」(Keywords)或稱為「保留字」(Reserved Words),因為這些字對於編譯程式而言,擁有特殊意義。 名稱擁有其有效「範圍」(Scope),在有效範圍的程式碼中名稱必需是唯一的,例如:在程式中可以使用相同的變數名稱,不過各變數名稱需要在不同的範圍,詳細的範圍說明。
4
3-1 C語言的識別字-命名範例與關鍵字 C語言的關鍵字
5
3-1 C語言的識別字-慣用的命名原則 C語言名稱的命名可以使用一些慣用的命名原則。例如:CamelCasing命名法是第一個英文字小寫之後為大寫,變數、函數的命名也可以使用不同英文字母大小寫的組合,如下表所示:
6
3-2 變數的宣告與初值 3-2-1 變數的屬性 3-2-2 變數的宣告 3-2-3 變數的初始值
7
3-2 變數的宣告與初值 電腦程式以程式碼的屬性區分為資料和指令,如下所示:
資料(Data):指「變數」(Variables)和「資料型態」(Data Types)。 指令(Instructions):指令是指運算子與運算式、「流程控制」(Control Structures)和第7章的「函數」(Functions)。
8
3-2-1 變數的屬性-說明 變數(Variables)的目的是儲存程式執行期間的暫存資料,程式設計者只需記住變數名稱,知道它代表一個記憶體位址的資料。 至於這個記憶體位址到底有哪裡?並不用傷腦筋,因為這是編譯程式的工作,簡單的說,程式語言的變數是使用有意義的名稱代表數字的記憶體位址。
9
3-2-1 變數的屬性-種類
10
3-2-2 變數的宣告-語法 C語言變數宣告的語法,如下所示:
資料型態 變數名稱清單; 上述宣告格式使用資料型態開頭,後面跟著變數名稱的清單,如果變數不只一個,請使用「,」逗號分隔。 變數宣告的目的是「宣告指定資料型態的變數且配置所需的記憶體空間」。C語言的變數需要集中在程式區塊的開頭宣告。
11
3-2-2 變數的宣告-範例 在C語言提供四種基本資料型態:char、int、float和double,可以指定變數儲存的資料是字元、整數、單精度浮點數祉雙精度浮點數值,如下所示: int balance; 上述程式碼宣告整數變數,資料型態為整數int(型態屬性),名稱為balance(名稱屬性),儲存的變數值是整數沒有小數點。 C語言可以在一列程式碼同時宣告多個相同資料型態的變數,此時各變數名稱請使用「,」逗號分隔,如下所示: int i, j, balance;
12
3-2-3 變數的初始值-語法 變數的主要目的是儲存程式執行時的暫存資料,我們可以在宣告變數的同時指定初始值。指定變數初始值的語法,如下所示: 資料型態 變數名稱 = 初始值; 上述語法使用「=」等號指定變數初值為20、1000和'C'等常數值。
13
3-2-3 變數的初始值-範例 C語言變數初始值範例,如下所示:
int balance = 1000; int i = 20; 上述程式碼宣告2個變數且指定初值為1000和20。在C語言同時宣告多個變數時,也可以指定變數的初值,如下所示: double a, b = ; 上述程式碼宣告變數a和b,但是只指定變數b的初值。
14
3-3 指定敘述 3-3-1 C語言的指定敘述 ViLLE – 1.1 指定與輸出變數值 3-3-2 C語言的多重指定敘述
15
3-3 指定敘述 「指定敘述」(Assignment Statements)可以在程式執行中存取變數值,如果宣告變數時沒有指定初值,我們也可以使用指定敘述即「=」等號來指定或更改變數值。
16
3-3-1 C語言的指定敘述-語法 C語言指定敘述的語法,如下所示: 變數 = 運算式;
上述指定敘述的左邊是變數名稱,右邊是「運算式」(Expression),運算式是C語言運算子和運算元組成的任何運算式,程式碼的目的是「將運算式的運算結果指定給左邊的變數」。
17
3-3-1 C語言的指定敘述-範例1 C語言指定敘述的範例,如下所示: int size, size1, size2; size = 35;
上述程式碼宣告3個整數型態的變數後,使用指定敘述指定變數值。
18
3-3-1 C語言的指定敘述-範例1圖例 在指定敘述「=」等號左邊的變數稱為「左值」(Lvalue),表示變數的位址(Address)屬性,如果變數在等號的右邊稱為「右值」(Rvalue),這是變數值(Value)屬性。
19
3-3-1 C語言的指定敘述-範例2 size2 = size1;
在指定敘述等號右邊的35和57稱為「整數常數」(Integer Constants),或稱為「文字值」(Literals),也就是直接使用數值來指定變數值,如果指定敘述的右邊是變數,如下所示: size2 = size1; 上述程式碼在等號左邊的變數size2是左值,取得的是位址,右邊變數size1是右值,取出的是變數值,所以指定敘述是將變數size1的「值」存入變數size2的記憶體「位址」,即1008。
20
3-3-1 C語言的指定敘述-範例2圖例 換句話說,就是更改變數size2的值成為變數size1的值,即57,如下圖示:
21
ViLLE – 1.1 指定與輸出變數值 請啟動ViLLE,在【一. 變數與運算子】目錄下,選【1. 指定與輸出變數值】,按【Run】鈕模擬執行此範例程式,如下圖所示:
22
3-3-2 C語言的多重指定敘述 C語言支援「多重指定敘述」(Multiple Assignments),可以在同一個指定敘述同時指定多個變數的值,如下所示: size = size1 = size2 = 50; 上述指定敘述可以同時將3個變數值指定為50。
23
3-4 C語言的資料型態 3-4-1 C語言的基本資料型態 3-4-2 整數資料型態 3-4-3 浮點數資料型態 3-4-4 字元資料型態
3-4-5 void資料型態
24
3-4 C語言的資料型態 C語言的資料型態分為「基本」(Basic Types)和「延伸」(Derived Types)兩種資料型態,如下所示: 基本資料型態:C語言的變數一共有char、int、float、double和void基本資料型態,在本節主要是說明C語言的基本資料型態。 延伸資料型態:C語言除了基本資料型態外,從這些基本型態可以建立多種延伸的資料型態。
25
3-4-1 C語言的基本資料型態-範圍 以ANSI-C和Borland C++ Builder編譯程式為例的基本資料型態範圍,如下表所示:
26
3-4-1 C語言的基本資料型態-型態修飾子 C語言的資料型態提供4種型態修飾子(Type Modifiers),如下表所示:
27
3-4-1 C語言的基本資料型態-完整修飾子的資料型態宣告
在C程式可以直接使用資料型態char、int和修飾子signed、unsigned、short和long宣告變數,這是一種縮寫宣告,其完整修飾子的資料型態宣告,如下表所示:
28
3-4-2 整數資料型態-種類 「整數資料型態」(Integral Types)是指變數儲存的資料為整數值,沒有小數點。依照整數資料長度的不同(即佔用的記憶體位元組數),C語言提供四種整數資料型態,如下表所示:
29
3-4-2 整數資料型態-整數常數 「整數常數」(Integral Constants)是在程式碼直接使用數字1、123、21000和-5678等數值。整數包含0、正整數和負整數可以使用十進位、八進位和十六進位表示,如下所示: 八進位:「0」開頭的整數值,每個位數的值為0~7的整數。 十六進位:「0x」或「0X」開頭的數值,位數值為0~9和A~F。
30
3-4-2 整數資料型態-整數常數範例 一些整數常數的範例,如下表所示:
31
3-4-2 整數資料型態-字尾型態字元 整數常數的資料型態視數值的範圍而定,我們可以在字尾加上字尾型態字元,指明整數常數的資料型態,如下表所示:
32
3-4-3 浮點數資料型態-種類 「浮點數資料型態」(Floating Types)是指變數儲存的是整數加上小數或使用科學符號表示的數值,例如:123.23、3.14、 和5e-4等。依照長度的不同(即佔用的記憶體位元組數),C語言提供三種浮點數的資料型態,如下表所示:
33
3-4-3 浮點數資料型態-浮點常數 浮點常數(Floating Constant)是在程式碼直接使用浮點數值,這是擁有小數點的數值,例如:123.23、4.34等。在C語言預設使用double資料型態,而不是float,可以使用「e」或「E」符號代表10為底指數的科學符號表示,一些浮點常數的範例,如下表所示:
34
3-4-3 浮點數資料型態-字尾型態字元 當宣告float浮點數資料型態的變數時,因為浮點常數預設是double資料型態,所以在指定浮點常數值時,需要在浮點數值的字尾加上字元「F」或「f」,將數值轉換成浮點數float,如下所示: float m = F; 上述float資料型態是使用的字尾「F」。浮點常數可以使用數值字尾型態的字元,如下表所示:
35
3-4-4 字元資料型態-字元常數 C語言的char資料型態可以是整數資料型態,也可以是「字元資料型態」(Char Type),其值是附錄G的ASCII內碼。 「字元常數」(Character Constant)表示直接使用字元符號,需要使用「'」單引號括起,如下所示: char a = 'A'; 字元常數也可以使用「\x」字串開頭的2個十六進位數字或「\」字串開頭3個八進位數字來表示,如下所示: char c = '\x20'; char d = '\040';
36
3-4-4 字元資料型態-字串常數 「字串常數」(String Literals)就是字串,字串是0或多個依序的字元使用ASCII字碼的雙引號「"」所括起的文字內容,如下所示: “C語言程式設計範例教本” “Hello World!” 在C語言並沒有提供字串資料型態,C語言的字串是一種字元陣列,目前C程式的字串常數都是使用在printf()函數的參數。
37
3-4-4 字元資料型態-Escape逸出字元
38
3-4-5 void資料型態 void資料型態在C語言是一種特殊資料型態,代表一個並不存在的值,在C語言並不會直接宣告這種資料型態的變數,主要是使用在型態轉換、函數傳回值、參數列和指標,詳細的說明請參閱本書後的各章節。
39
3-5 定義符號常數-說明 「符號常數」(Symbolic Constants或Named Constants)是在程式中使用一個名稱代表一個常數。
40
3-5 定義符號常數-#define指令 #define指令
C程式可以使用前置處理器(Preprocessor)的#define指令定義符號常數,如下所示: #define PI 上述程式碼是巨集指令,並不是指定敘述,所以沒有等號,在最後也不用分號。 簡單的說,當在C程式中出現PI名稱時,就將它使用 取代,PI則是一個識別字。
41
3-5 定義符號常數-const常數修飾子 const常數修飾子
在C程式也可以使用const常數修飾子來建立常數,我們只需在宣告變數前使用const常數修飾子,就可以建立常數,如下所示: const double e = ; 上述程式碼表示變數e的值不能更改,如果使用在陣列變數,表示陣列所有元素都不能更改,如果使用在函數的參數,表示函數中不允許更改參數值。
Similar presentations