收藏 分享(赏)

第3章 變數、資料型態與運算子.ppt

上传人:weiwoduzun 文档编号:5673415 上传时间:2019-03-11 格式:PPT 页数:63 大小:535KB
下载 相关 举报
第3章 變數、資料型態與運算子.ppt_第1页
第1页 / 共63页
第3章 變數、資料型態與運算子.ppt_第2页
第2页 / 共63页
第3章 變數、資料型態與運算子.ppt_第3页
第3页 / 共63页
第3章 變數、資料型態與運算子.ppt_第4页
第4页 / 共63页
第3章 變數、資料型態與運算子.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

1、第3章 變數、資料型態與運算子,3-1 電腦記憶體的基礎 3-2 變數的命名與宣告 3-3 C語言的資料型態 3-4 C語言的運算式 3-5 資料型態的轉換,3-1 電腦記憶體的基礎,3-2 變數的命名與宣告,3-2-1 C語言的命名語法 3-2-2 識別字的種類 3-2-3 變數的宣告與初始值 3-2-4 指定敘述 3-2-5 常數的宣告與使用,3-2 變數的命名與宣告,以高階程式語言來說,程式是由資料(Data)和指令(Instructions)所組成,如下: 資料部分:指變數(Variables)和資料型態(Data Types)。 指令部分:主要是指運算子、流程控制(Control S

2、tructures)和副程序(Subroutines)。,3-2-1 C語言的命名語法-說明,C語言的程式不論大小,都是由函數和變數組成,在撰寫程式時我們需要替變數、結構和函數等很多元素命名,程式設計者在替這些元素命名時,需要遵循程式語言的語法。,3-2-1 C語言的命名語法-命名規則,C語言的命名語法,如下所示: 名稱是一個合法的識別字(Identifiers),識別字是使用英文字母開頭,不限長度,包含字母、數字和底線_字元組成的名稱,C語言的識別字至少前31個字元是有效字元。 名稱區分英文字母的大小寫,例如:hello、Hello和HELLO屬於不同的識別字。 名稱不能使用C語法的關鍵字(

3、Keywords)或稱為保留字(Reserved Words),因為這些字對於編譯程式而言,是擁有特殊意義的識別字。 名稱擁有其有效範圍(Scope),在有效範圍的程式碼中名稱必需是唯一的。,3-2-1 C語言的命名語法-C語言的關鍵字,3-2-1 C語言的命名語法-範例,一些合法的名稱範例,如下所示:T, n, size, z100, long_name, helloWord,3-2-2 識別字的種類-說明,C語言的命名語法可以建立新的識別字,事實上除了變數的命名外,在程式還需要替常數、變數、函數、結構、聯合、列舉常數和新型態命名,這些名稱都屬於識別字,同樣的,這些名稱不可以是C語言的關鍵字

4、。,3-2-2 識別字的種類-慣用的命名法,3-2-3 變數的宣告與初始值-說明,變數的目的是儲存程式執行期間的暫存資料,程式設計者只需記住變數名稱,知道它代表一個記憶體位置的資料,至於這個記憶體位置到底有那裡?並不用傷腦筋,因為這是編譯程式的工作,簡單的說,程式語言的變數是使用有意義的名稱代表數字的記憶體位址。,3-2-3 變數的宣告與初始值-屬性,3-2-3 變數的宣告與初始值-語法,C語言變數宣告的語法,如下所示: 資料型態 變數名稱; 宣告格式使用資料型態開頭,後面跟著變數名稱,這列程式碼的目的是宣告資料型態的變數且配置其記憶體空間。 C語言的變數需要集中在程式區塊的開頭宣告。 C+語

5、言只要有需要,隨處都可以宣告變數。,3-2-3 變數的宣告與初始值-範例,C語言擁有基本資料型態:char、int、float和double。例如:一個整數變數宣告的範例,如下所示: int balance; 如果需要同時宣告多個變數,請使用,逗號分隔,如下所示: int i, j, balance;,3-2-3 變數的宣告與初始值-初值,在宣告好變數後,其目的是為了儲存資料,變數儲存的資料可以在宣告時同時指定初始值,或使用第3-2-4節的指定敘述設定變數值。在C語言宣告變數且指定初值,只需使用=等號,如下所示: int balance = 1000; int i = 20;,3-2-4 指定

6、敘述-語法,指定敘述(Assignment Statements)是在程式執行中存取變數值,如果宣告變數時沒有指定初值,我們可以使用指定敘述即=等號指定變數值或更改變數值,其語法如下所示: 變數 = 運算式; 指定敘述的左邊是變數名稱,右邊是運算式(Expression),這個運算式是C語言運算子和運算元組成的任何運算式,程式碼的目的是將運算式的運算結果指定給變數。,3-2-4 指定敘述-範例,指定敘述的範例,如下所示: int size, size1, size2; size = 35; size1 = 57; 程式碼在宣告3個整數型態的變數後,使用指定敘述指定變數值。,3-2-4 指定敘述

7、-說明,在指定敘述=等號左邊的變數稱為左值(Lvalue),表示變數的位址(Address)屬性,如果變數在等號的右邊稱為右值(Rvalue),這是變數值(Value)屬性。,3-2-4 指定敘述-指定成變數,如果指定敘述的右邊是變數,如下所示: size2 = size1; 程式碼在等號左邊的變數size2是左值,取得的是位址,右邊變數size1是右值,取出的是變數值 指定敘述是將變數size1的值存入變數size2的記憶體位址,即1008,就是更改變數size2的值成為變數size1的值,即57。,3-2-5 常數的宣告與使用- #define指令,常數(Symbolic Constant

8、s或Named Constants)是指一個變數在設定初始值後,就不會變更其值,簡單的說,就是在程式使用一個名稱代表一個固定值。 C語言支援常數修飾子const和使用前置處理器(Preprocessor)的#define指令定義常數,如下所示: #define PI 3.1415926,3-2-5 常數的宣告與使用- const常數修飾子,在宣告變數前使用const常數修飾子,如下所示: const double e = 2.71828182845; 程式碼表示變數e的值不能更改。 如果使用在陣列變數,表示陣列所有元素都不能更改。 如果是函數的參數,在函數中不允許更改參數的值。,3-3 C語言

9、的資料型態,3-3-1 C語言的基本資料型態 3-3-2 整數資料型態 3-3-3 浮點數資料型態 3-3-4 字元資料型態 3-3-5 void資料型態,3-3 C語言的資料型態,C語言的資料型態分為基本(Basic Types)和延伸(Derived Types)兩種資料型態,如下所示: 基本資料型態:C語言的變數共有char、int、float、double和void基本資料型態,本節主要說明的是C語言的基本資料型態。 延伸資料型態:C語言除了基本資料型態外,從這些基本型態可以建立多種延伸的資料型態,例如:陣列和結構等。,3-3-1 C語言的基本資料型態-說明,C語言基本資料型態(Bas

10、ic Types)的範圍和特性是定義在和標頭檔,各種資料型態的大小,即佔用記憶體的位元組數依不同的電腦系統而不同,在程式碼可以使用sizeof運算子取得資料型態的大小,如下: char v1; printf(“char =%dn“,sizeof(char); 程式碼使用sizeof運算子取得資料型態char佔用的位元組數,sizeof運算的語法,如下所示: 整數常數 = sizeof(型態名稱或變數名稱);,3-3-1 C語言的基本資料型態-1,3-3-1 C語言的基本資料型態-2,C語言的資料型態還提供4種修飾子,其說明如下所示: unsigned:無符號的變數值,這是指變數值都是正整數。

11、signed:有符號變數,即變數值擁有正負值,如果沒有指明,資料型態預設是有符號,它和無符號的差異在符號位元,有符號需要保留一個位元儲存正負符號。 short:如果需要比int還小的範圍,我們可以使用此修飾子節省記憶空間。 long:如果需要比int還大的範圍,我們可以使用此修飾子放大記憶空間,以儲存更大的範圍。,3-3-1 C語言的基本資料型態-完整修飾子的資料型態宣告,3-3-2 整數資料型態-說明,整數資料型態(Integral Types)是指變數儲存的資料為整數值沒有小數點,依照整數資料長度的不同(即佔用的記憶體位元組數),C語言共有四種整數資料型態,如下表所示:,3-3-2 整數資

12、料型態-整數常數,整數常數(Integral Constants),也就是在程式碼直接使用數字123、45和5678等。整數包含0、正整數和負整數可以使用十進位、八進位和十六進位表示。 如果0開頭的整數值,而且每個位數的值為07的整數時,表示是八進位,否則為十進位,0x或0X開頭的數值,位數值為09和AF是十六進位。,3-3-2 整數資料型態-範例,3-3-2 整數資料型態-字尾型態字元,3-3-3 浮點數資料型態-說明,浮點數資料型態(Floating Types)是指變數儲存的是整數加上小數或使用科學符號表示的數值,例如:3.14、100.567、5e-4等,依照長度的不同(即佔用的記憶體

13、位元組數),C語言提供二種浮點數的資料型態,如下表所示:,3-3-3 浮點數資料型態-浮點常數,如果程式碼直接使用浮點數值(有小數點的數值,例如:12.3)的浮點常數(Floating Constant),C語言預設使用double資料型態,而不是float,可以使用e或E符號代表10為底指數的科學符號表示。,3-3-3 浮點數資料型態-範例,如果浮點變數宣告的是float,在指定浮點常數值時,因為浮點常數預設是double,我們可以在浮點數值的字尾加上字元F或f,將數值轉換成浮點數float,如下所示: float i = 5.0F;,3-3-3 浮點數資料型態-字尾型態字元,3-3-4 字

14、元資料型態-說明,C語言的char資料型態可以是整數資料型態,也可以是字元資料型態(Char Type),這是ASCII內碼的字元。,3-3-4 字元資料型態-字元常數,字元常數(Character Constant)表示直接使用字元符號,需要使用單引號括起,如下所示: char a = A; 上述變數宣告設定初值為字元A,也可以直接使用ASCII碼,以此例是65。 字元常數也可以使用x字串開頭的2個十六進位數字或字串開頭3個八進位數字來表示,如下所示: char c = x20; char d = 040;,3-3-4 字元資料型態-字串常數,字串常數(String Literals)就是字

15、串,字串是0或多個依序的字元使用ASCII字碼的雙引號“所括起的文字內容,如下所示: “C/C+程式設計範例教本“ “Hello World!“ 在C語言並沒有提供字串資料型態,C語言的字串就是字元陣列,目前程式碼的字串常數主要都是使用在printf()函數的參數。,3-3-4 字元資料型態-Escape逸出字元(Escape Sequence),3-3-5 void資料型態,void資料型態在C語言屬於一種特殊資料型態,它代表一個不存在的值,在C語言並不會直接宣告這種資料型態的變數,主要是使用在型態迫換、函數傳回值、參數列和指標。,3-4 C語言的運算式,3-4-1 運算子的優先順序 3-4

16、-2 算術運算子 3-4-3 遞增和遞減運算字 3-4-4 關係與邏輯運算子 3-4-5 位元運算子 3-4-6 指定運算子,3-4 C語言的運算式,C語言指定敘述的右邊是一個運算式(Expressions),它是由運算子(Operators)和運算元(Operands)所組成。 運算式的範例,如下所示: a + b - 1 a = b a b & a 1 運算式變數a、b和數值1都屬於運算元,+、-、=、和&為運算子。,3-4-1 運算子的優先順序-1,3-4-1 運算子的優先順序-2,3-4-2 算術運算子-說明,C語言的算術運算子(Arithmetic Operators)是常用的數學運

17、算子,大部分的運算子都是二元運算子(Binary Operators),需要兩個運算元,其中+、-運算子也可以是單運算元(Unary)運算子的正負號。,3-4-3 算術運算子-範例,3-4-3 算術運算子-運算式寫法,C語言在程式敘述中使用運算式可以有多種組合,例如:2個指定敘述,如下所示: a = 4 + 5; b = 6 + a; 上述運算式可以寫成: b = 6 + (a = 4 + 5),3-4-3 算術運算子-建立數學公式,在C語言只需使用算術運算子和變數,就可以建立複雜的數學運算式,如下所示: f = x*x-2*x+3 f = (x+y)*(x+y)+5 現成的數學公式,例如:華

18、氏(Fahrenheit)和攝氏(Celsius)溫度的轉換,攝氏轉華氏的公式如下: f = (9.0 * c) / 5.0 + 32.0 華氏轉攝氏的公式,如下所示: c = (5.0 / 9.0 ) * (f - 32),3-4-3 遞增和遞減運算字-說明,C語言的遞增和遞減運算字(Increment and Decrement Operators)是一種能夠置於變數之前或之後的運算式簡化寫法,如下表所示:,3-4-3 遞增和遞減運算字-範例,算術運算子是在變數之後或之前,如果在前面,變數值是立刻改變,如果在後面,表示在執行運算式後才會改變,如下所示: x = 10; y = 10; pr

19、intf(“x+ = %d : x = %dn“ , x+, x); printf(“-y = %d : y = %dn“ , -y, y); 變數x和y的初始值為10,後面二列程式碼的第一列是x+,運算子在後,所以之後才會改變,第1個x+值仍然為10,第2個x為11。 -y的運算子是在前,所以第1個為9,第2個也是9。,3-4-4 關係與邏輯運算子-關係運算子(Relational Operators),3-4-4 關係與邏輯運算子-邏輯運算子(Logical Operators),3-4-5 位元運算子-範例,3-4-5 位元運算子-說明,是位元位移運算子,指的是二進位的位元向左或右移幾個

20、位置,例如:3 1 = 6,如下所示:二進位 十進位1101 130110 6 1,向右移1位元,左邊自動填入0,3-4-5 位元運算子-邏輯運算子,3-4-5 位元運算子-真假值表,3-4-6 指定運算子,3-5 資料型態的轉換,3-5-1 算術型態轉換 3-5-2 強迫型態轉換,3-5 資料型態的轉換,資料型態轉換(Type Conversions)在程式中會經常的出現,例如:將整數轉換成浮點數。 資料型態轉換是指轉換變數儲存的資料,而不是變數本身的資料型態,因為不同型態佔用的位元組數不同,在進行資料型態轉換時,例如:double轉換成float,變數資料會損失其精確度。,3-5-1 算術

21、型態轉換-說明,算術型態轉換(Arithmetic Conversions)並不需要特別語法,運算式如果擁有不同型態的運算元,就會將儲存的資料自動轉換成相同的資料型態,運算式型態轉換的優先順序是型態數值範圍大者比較高,如下所示: long double double float unsigned long long unsigned int int 上述型態的優先順序是指如果2個運算元屬於不同型態,就會自動轉換成優先順序比較高的型態。,3-5-1 算術型態轉換-範例,3-5-2 強迫型態轉換-語法,雖然算術型態轉換就會自動轉換型態,不過有時,其轉換結果並非預期的結果,此時可以使用C語言的型態轉換運算子(Cast Operator)在運算式中強迫轉換資料型態,其語法如下所示: (型態名稱) 運算式或變數 語法將運算式或變數強迫轉換成前面括號的型態,注意!一定需要括號。,3-5-2 強迫型態轉換-範例,例如:整數和整數的除法17/5,其結果是整數3。如果需要精確到小數點,就不能使用算術型態轉換,而需要強迫將它轉換成浮點數,例如:a=17、b=5,如下所示: r = (float)a / (float)b; 上述程式碼將整數變數a和b都強迫轉換成浮點數float,我們也可以只強迫轉換其中之一,然後讓算術型態轉換自動轉換其它的運算元,此時17/5的結果是3.4。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报