第二章+基本數據類型、運算符與表達式 (1)_第1頁
第二章+基本數據類型、運算符與表達式 (1)_第2頁
第二章+基本數據類型、運算符與表達式 (1)_第3頁
第二章+基本數據類型、運算符與表達式 (1)_第4頁
第二章+基本數據類型、運算符與表達式 (1)_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C C C語言程序設計語言程序設計第第2 2章章 基本數據類型、運算符與表達式基本數據類型、運算符與表達式Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C2問題:人類的語言書寫時,不同國家有不同的要求,基本問題:人類的語言書寫時,不同國家有不同的要求,基本的如:的如: 有哪些數據是規(guī)定可用的,可進行什么樣的有哪些數據是規(guī)定可

2、用的,可進行什么樣的運算和加工?運算和加工?用字要求用字要求格式要求格式要求標點要求標點要求 C C語言作為一種計算機語言,在用于編程語言作為一種計算機語言,在用于編程時,時,C C語言中對數據的類型,哪些操作運算是語言中對數據的類型,哪些操作運算是合法的,都進行了相關的規(guī)范和要求。合法的,都進行了相關的規(guī)范和要求。引子引子Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C 本章要點本章要點第第2 2章章 數據類型、運算符和表達式數據類型、運算符和表達式 本章難點本章難點n C C語

3、言的基本數據類型語言的基本數據類型n 變量的定義、賦值、初始化及使用方法變量的定義、賦值、初始化及使用方法n 基本運算符的運算規(guī)則及優(yōu)先級別基本運算符的運算規(guī)則及優(yōu)先級別n 表達式的構成規(guī)則和計算表達式的構成規(guī)則和計算n 數據類型轉換的意義和實質數據類型轉換的意義和實質Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C2.12.22.32.42.5C語言的數據類型語言的數據類型常量與變量常量與變量整型數據整型數據實型數據實型數據字符型數據字符型數據本章主要內容本章主要內容Copyri

4、ght Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C2.62.72.82.92.10算術運算符與算術表達式算術運算符與算術表達式賦值運算符與賦值表達式賦值運算符與賦值表達式逗號運算符與逗號表達式逗號運算符與逗號表達式位運算符位運算符數據類型轉換與計算類型長度運算符數據類型轉換與計算類型長度運算符本章主要內容本章主要內容Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C6數據類型總表數據類

5、型總表數數據據類類型型基本類型基本類型構造類型構造類型指針類型指針類型空類型空類型void字符類型字符類型char枚舉類型枚舉類型整整 型型實實 型型單精度型單精度型float雙精度型雙精度型double數組數組結構體結構體struct共用體共用體union短整型短整型short長整型長整型long整型整型int數據類型決定:數據類型決定:1. 數據占內存字節(jié)數數據占內存字節(jié)數2. 數據取值范圍數據取值范圍2.1 C2.1 C語言的數據類型語言的數據類型不可再將其分解成其他類型構造類型數據可以分解成若干個成員或元素 ,各成員的類型可以相同,也可以不同,可以是基本數據類型,也可以是構造類型。值用

6、來表示某個量在內存儲器中的地址函數類型說明了返回值的類型,但有些函數沒有返回值,這種函數類型定義為空類型(void)。Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C2.12.22.32.42.5C語言的數據類型語言的數據類型常量與變量常量與變量整型數據整型數據實型數據實型數據字符型數據字符型數據本章主要內容本章主要內容Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C8

7、常量常量定義:程序運行時其值不能改變的量(即常數)定義:程序運行時其值不能改變的量(即常數)分類分類: :字面常量字面常量: :又稱直接常量又稱直接常量整型常量整型常量 : 1212、0 0、3 3; 實型常量實型常量 : 4.64.6、1.23 1.23 字符常量字符常量 :a、b符號常量符號常量: :Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C9標識符標識符定義:標識符是用戶自定義的一種字符序列,用于表示程序中需要定義:標識符是用戶自定義的一種字符序列,用于表示程序中需要辨

8、認的對象,比如變量、數組、函數等對象的名字。辨認的對象,比如變量、數組、函數等對象的名字。分類:分類:關鍵字、關鍵字、預定義標識符預定義標識符和和用戶標識符用戶標識符 命名原則命名原則:由由字母字母、數字數字、下劃線下劃線組成組成的一串符號的一串符號,但必修以英文但必修以英文字母或字母或下劃線下劃線開頭開頭標識符區(qū)分大小寫標識符區(qū)分大小寫不能使用關鍵字不能使用關鍵字作為用戶標識符作為用戶標識符見名知意見名知意建議用戶標識符不要與預定義標識符相同建議用戶標識符不要與預定義標識符相同 不宜混淆不宜混淆 如如l l與與I, oI, o與與0 0長度:長度:VC 6.0VC 6.0為為255255個字

9、符個字符例例: :判斷下列標識符號合法性判斷下列標識符號合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M.D.John3days#33char$123ab2.2 2.2 常量與變量常量與變量由由C語言規(guī)定的具有語言規(guī)定的具有特定含義的標識符,特定含義的標識符,也稱為保留字也稱為保留字關鍵字均關鍵字均為小寫,為小寫,如如int、while預定義標識符在C語言中有特定的含義,如printf、include Copyright Henan Polytechnic Universit

10、y 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C10符號常量符號常量也稱宏常量也稱宏常量定義:用一個標識符代表一個常量。定義:用一個標識符代表一個常量。由由C C語言中的宏定義預處理命令來定義。語言中的宏定義預處理命令來定義。定義格式:定義格式:#define 符號常量符號常量 常量常量標識符標識符符號常量應遵循標識符的命名規(guī)則符號常量應遵循標識符的命名規(guī)則 習慣上用大寫字母習慣上用大寫字母常量可以是任何類型常量可以是任何類型符號常量一經定義,凡在源程序中使用該符號常量時,符號常量一經定義,凡在源程序中使用該符號常量時,都用其后指定的常量來替換。都用其后

11、指定的常量來替換。 例例2.12.1符號常量的使用符號常量的使用#include #define PI 3.14159#define R 5.3main() printf(area=%fn,PI*R*R); /* 輸出圓面積輸出圓面積 */ printf(circumference=%fn,2*PI*R); /* 輸出圓周長輸出圓周長 */運行結果:運行結果:area=88.247263circumference=33.300854如如 #define PRICE 30修改程序方便閱讀程序方便 Copyright Henan Polytechnic University 語語言言第第 2 2

12、章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C11變量變量功能:功能:用來保存程序運行過程中的輸入數據、計算用來保存程序運行過程中的輸入數據、計算獲得的中間結果和最終結果。獲得的中間結果和最終結果。變量定義的一般格式:變量定義的一般格式: 類型標識符類型標識符 變量名變量名1,1,變量名變量名2,2,; ; 變量初始化變量初始化: :定義時賦初值定義時賦初值 變量的使用:變量的使用:先定義,后使用先定義,后使用例例: int a,b,c; float data;類型標識符類型標識符 變量名變量名=初值初值;例例: int a=2,b,c=4; float data=3.67;

13、char ch=A; int x=1,y=1,z=1; int x=y=z=1;決定分配字節(jié)數和數的表示范圍例例: int student; stadent=19; /Undefined symbol statent in function main Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C12int a=1, b=-3,c;.地址abc4字節(jié)4字節(jié)4字節(jié)字節(jié)地址地址.-3隨機數1編譯程序根據變量定義為其分配指定字節(jié)的內存單元變量名變量名與與變量值變量值Copyright

14、Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C13main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data);變量定義位置:變量定義位置:變量定義語句可放在函數外,也可放在函變量定義語句可放在函數外,也可放在函數或復合語句內。數或復合語句內。Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C2.12.

15、22.32.42.5C語言的數據類型語言的數據類型常量與變量常量與變量整型數據整型數據實型數據實型數據字符型數據字符型數據本章主要內容本章主要內容Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C15三種形式:三種形式:十進制整數:由數字十進制整數:由數字0909和正負號表示和正負號表示.(.(與日常使用的整數與日常使用的整數寫法一樣寫法一樣) ) 如如: 0,-143,87: 0,-143,87八進制整數:由數字八進制整數:由數字0 0開頭開頭, ,后面是八進制數字序列后面是八進制

16、數字序列, , 數字數字取值范圍為取值范圍為0 0 7 7。 如如:00:00、015015、037037十六進制整數:十六進制整數:以以0 x0 x或或0X0X開頭的十六進制數字序列開頭的十六進制數字序列, ,數字取數字取值范圍為值范圍為0909、a a f f或或A A F F。 如如:0 x0:0 x0、-0 xABC-0 xABC、0X9fc0X9fc 2.3 2.3 整型數據整型數據整型常量(整數)整型常量(整數)是數字是數字0 ,不是字母不是字母o 非法的八進制數 : 0539、02A、0567 非法的十六進制數 :0 xfg、0 x-89F Copyright Henan Pol

17、ytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C16&整型變量的分類整型變量的分類根據表達范圍:根據表達范圍:基本整型基本整型(int)、 短整型(短整型(short int) 長整型(長整型(long int)標準標準C C語言規(guī)定:語言規(guī)定:short intintlong intshort intintlong int根據是否有符號:根據是否有符號:有符號型(有符號型(signed)和無符號型()和無符號型(unsigned) 若未指定是否有符號,則隱含為有符號型(若未指定是否有符號,則隱含為有符號型(s

18、igned) 2.3 2.3 整型數據整型數據整型變量整型變量用來存放整數,基本類型為int型 如:int型數據是有符號,而unsigned int是無符號的。 Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C17VC 6.0VC 6.0中整型變量的所占字節(jié)數和數值范圍中整型變量的所占字節(jié)數和數值范圍整型類型符整型類型符占用占用字節(jié)字節(jié)數數數數 值值 范范 圍圍signed int421474836482147483647 即即231(2311)signed short int23

19、276832767 即即215(2151)signed long int421474836482147483647 即即231(2311)unsigned int404294967295 即即0(2321)unsigned short int2065535 即即0(2161)unsigned long int404294967295 即即0(2321)Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C18&整型變量的定義整型變量的定義在定義整型變量時,某些類型修飾符可以省略在

20、定義整型變量時,某些類型修飾符可以省略int a,b,c; /* a,b,c為有符號整型變量為有符號整型變量 */ long x,y; /* x,y為有符號長整型變量為有符號長整型變量 */ unsigned p, q; /* p,q為無符號整型變量為無符號整型變量 */在存儲正數時,在存儲正數時,無符號整型變量無符號整型變量的數值范圍比的數值范圍比有符有符號整型變量號整型變量的數值范圍擴大一倍,的數值范圍擴大一倍,如果能事先確定存儲的數是正整數(如年齡、庫存如果能事先確定存儲的數是正整數(如年齡、庫存量、人數等),則可將變量定義為無符號類型,以量、人數等),則可將變量定義為無符號類型,以充分

21、利用變量的數值范圍。充分利用變量的數值范圍。Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C19&整型數據在內存中的存放形式整型數據在內存中的存放形式在內存中數據是以二進制形式存放的在內存中數據是以二進制形式存放的有符號整型數有符號整型數無符號整型數無符號整型數0111111111111111signed short(最大值)(最大值)unsigned short(最大值)(最大值)1111111111111111符號位 0123456789101112131415Copy

22、right Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C20實際上,整型數據是以補碼的形式來存儲的。 正數的補碼正數的補碼 負數的補碼負數的補碼 原碼相同原碼相同 將原碼的符號位保持不變,將原碼的符號位保持不變,數值位逐位取反(變?yōu)榉创a)數值位逐位取反(變?yōu)榉创a)末位(即最右邊的那一位)加末位(即最右邊的那一位)加1求:求:10的補碼的補碼 (1)寫出寫出10的原碼的原碼(2)數值位取反,得數值位取反,得10的反碼的反碼 (3)末位加末位加1,得,得10的補碼的補碼1000000000001010

23、11111111111101011111111111110110Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C21&整型數據的溢出整型數據的溢出short intshort int型變量的最大允許值為型變量的最大允許值為3276732767,如果,如果再加再加1 1,會出現什么情況?,會出現什么情況? 例2.2 整型數據的溢出。#include main() short a,b; a=32767; b=a+1; printf(%d,%d,a,b);a和和b的存儲格式:的存

24、儲格式:a 0111111111111111b 1000000000000000運行結果為:運行結果為:32767, -32768Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C22整型常量的類型整型常量的類型整型常量也有基本整型、長整型、有符整型常量也有基本整型、長整型、有符號和無符號之分號和無符號之分 編譯程序會根據編譯程序會根據數值大小分辨數值大小分辨出常量是出常量是int還是還是long int類型。類型。 int型和型和long型數據均占型數據均占4個字節(jié),在個字節(jié),在2

25、1474836482147483647范圍內的常量認為是范圍內的常量認為是int型。型。需要明確地指出整數是否屬于需要明確地指出整數是否屬于long int類型,類型,要在整數的末尾要加上字母要在整數的末尾要加上字母L或或l。 在表示無符號整型常量時,需要在數值后添加字在表示無符號整型常量時,需要在數值后添加字母母U或或u作為后綴作為后綴,若是長整型無符號整型常量,若是長整型無符號整型常量,則可以加后綴則可以加后綴LU或或lu, 無論是基本整型數還是長整型數,都被識別為無論是基本整型數還是長整型數,都被識別為有符號整數有符號整數有符號整數有符號整數無符號整型常量無符號整型常量例:148、013

26、、148L、0 x38Alu 、013L、 0 x38Au 、0 x16L、358U、0 x16、358LU148、013、0 x16148L013L0 x16L0 x38Au358U0 x38Alu358LUCopyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C2.12.22.32.42.5C語言的數據類型語言的數據類型常量與變量常量與變量整型數據整型數據實型數據實型數據字符型數據字符型數據本章主要內容本章主要內容Copyright Henan Polytechnic Universi

27、ty 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C24表示形式:表示形式:小數形式:小數形式:數學中常用的實數形式,由數字數學中常用的實數形式,由數字09和小數和小數點組成。點組成。 (必須有小數點必須有小數點) 如:如:0.0、25.0、5.789、0.13、5.0、300.、267.8230 指數形式:指數形式:也稱為科學記數法,由尾數(可帶符號)、也稱為科學記數法,由尾數(可帶符號)、階碼標志階碼標志“e”或或“E”以及階碼(只能為整數,可以帶符以及階碼(只能為整數,可以帶符號)組成。(號)組成。(字母字母e或或E的前后及數字之間不能插入空格的前后

28、及數字之間不能插入空格 ) 例如:例如:2.1E5(等于(等于2.1105),),3.7E-2(等于(等于3.7102),),0.5E7(等于(等于0.5107),),2.8E-2(等于(等于2.8102) 2.4 2.4 實型數據實型數據實型常量(浮點型常量、實數或浮點數)實型常量(浮點型常量、實數或浮點數)345E7553.-E32.7E無小數點 階碼標志E之前無數字無階碼標志負號位置不對 無階碼Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C25floatfloat(單精度單

29、精度):):占占3232位位,提供,提供7 7位有效數字位有效數字doubledouble(雙精度):(雙精度):占占6464位位,提供,提供1616位有效數字位有效數字longlong doubledouble(長雙精度型):(長雙精度型):占占6464位位,提供,提供1616位有效位有效數字數字 2.4 2.4 實型數據實型數據實型變量(浮點變量實型變量(浮點變量 )float a=1.5,b=0.35,c; /* 定義單精度實型變量a、b、c,并對a、b初始化 */double x,y,z; /* 定義雙精度實型變量x、y、z */Copyright Henan Polytechnic

30、University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C26實型數據在內存中的存放形式實型數據在內存中的存放形式 無論表示形式是小數還是指數,均以指數格式存儲無論表示形式是小數還是指數,均以指數格式存儲 實數的存儲由符號位、指數(階碼)以及尾數(小數)等三實數的存儲由符號位、指數(階碼)以及尾數(小數)等三部分組成。部分組成。 例如:實數例如:實數31.4159 指數指數尾數尾數+2314159符號位float:共占32位。1位符號位、8位指數和23位尾數;double:占64位。1位符號位、11位指數和52位尾數。指數部分占的位數多,則表示的

31、數值范圍大。尾數部分占的位數多,實型數據的有效數字就多,精度就高。Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C27實型變量的舍入誤差實型變量的舍入誤差由于實型變量是用有限的存儲單元存儲的,因此提供的有效由于實型變量是用有限的存儲單元存儲的,因此提供的有效數字是有限的,往往會產生誤差。數字是有限的,往往會產生誤差。 在十進制小數轉換成二進制時,如果小數最后一位不是5,則轉換的二進制小數往往是無限位,此時產生舍入誤差 一個很大的數和一個很小的數直接進行加或減時,可能會“丟失”小的數

32、。例2.3 實型變量的舍入誤差。#include main() float a,b; a=123456.72e5; b=a+20; printf(a=%fn,a); printf(b=%fn,b);本例程序運行的結果是:a=12345671680.000000b=12345671680.000000Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C28例 4.5E1F、-4.5E-2F實型常量的類型實型常量的類型默認默認doubledouble型型在在實型常量后加字母實型常量后加字母

33、f f或或F F,認為它是認為它是float float 型型Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C2.12.22.32.42.5C語言的數據類型語言的數據類型常量與變量常量與變量整型數據整型數據實型數據實型數據字符型數據字符型數據本章主要內容本章主要內容Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C Caaa30定義定義: :用用單引號(單引號()括起來的括起

34、來的一個字符一個字符。 2.5 2.5 字符型數據字符型數據字符型常量字符型常量如 a b = + ?存儲:字符常量占用一個字節(jié),具體存放的是存儲:字符常量占用一個字節(jié),具體存放的是該字符對應的該字符對應的ASCIIASCII代碼值代碼值。如 A A6565, a a9797, 0 048 , 48 , 1 14949可以進行運算可以進行運算例如:例如:a+5a+5、AA5 5、1+101+1010210260605959Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C31&

35、;字符常量的特點字符常量的特點 :字符常量只能用字符常量只能用單引號單引號括起來,不能用雙引號或括起來,不能用雙引號或其他括號其他括號abc是非法的是非法的字符常量只能是字符常量只能是單個字符單個字符C C語言規(guī)定,字母是區(qū)分大小寫的,所以語言規(guī)定,字母是區(qū)分大小寫的,所以aa和和AA是不同的字符常量是不同的字符常量Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C32轉義字符轉義字符一種特殊形式的字符常量一種特殊形式的字符常量轉義字符轉義字符某些控制字符(如某些控制字符(如回車符、

36、換行符回車符、換行符等)和一些等)和一些ASCII字符卻字符卻無法使用字符常量進行表示無法使用字符常量進行表示轉義字符以反斜線轉義字符以反斜線“”開頭,后跟開頭,后跟一個或幾個一個或幾個字符。字符。轉義字符及其含義:轉義字符及其含義:轉義字符含義nvradddtbf“xhh轉義字符含義換行垂直制表回車響鈴單引號13位8進制數代表的字符水平制表退格換頁反斜線雙引號12位16進制數代表的字符如 101 -A 012 -n 376 - x61 -a 60 -0 483 -()例:A-101-x41-65Copyright Henan Polytechnic University 語語言言第第 2 2

37、 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C33定義:用雙引號定義:用雙引號( (“”) )括起來的字符序列括起來的字符序列 字符串常量字符串常量CHINA,C program,12365478 轉義字符也可以出現在字符串轉義字符也可以出現在字符串ABCD、101102x43x44字符常量與字符串常量字符常量與字符串常量的區(qū)別的區(qū)別字符常量由單引號括起來,字符串常量由雙字符常量由單引號括起來,字符串常量由雙引號括起來引號括起來字符常量只能是單個字符,字符串常量可以字符常量只能是單個字符,字符串常量可以為空字符串,也可以含為空字符串,也可以含1 1個或多個字符個或多個字符可以

38、把一個字符常量賦予一個字符變量,可以把一個字符常量賦予一個字符變量,語言中沒有字符串變量,不能把一個字符串語言中沒有字符串變量,不能把一個字符串常量賦予一個字符串變量。但可以用一個字常量賦予一個字符串變量。但可以用一個字符數組來存放一個字符串常量符數組來存放一個字符串常量字符常量占字符常量占1 1個字節(jié)的內存空間。字符串常個字節(jié)的內存空間。字符串常量占的量占的內存字節(jié)數內存字節(jié)數等于等于字符串中字符數字符串中字符數加加1 1,增加的一個字節(jié)由系統(tǒng)自動存入字符增加的一個字節(jié)由系統(tǒng)自動存入字符00(ASCIIASCII碼為碼為0 0),作為字符串結束的標志。),作為字符串結束的標志。Copyrig

39、ht Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C34h e l l o 0例例 字符串字符串“hellohello”在內存中在內存中例例 空串空串 “”“”0a a a a 00例例 a a“a”例: char ch; ch=“A”; 例: char ch; ch=A; Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C35例例 轉義字符舉例轉義字符舉例 main() printf(1

40、01 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);例例 main() printf(“&b=n”); 運行結果:運行結果:( (屏幕顯示屏幕顯示) )A B CIsay:”How are you?”C ProgramTurbo C運行結果:運行結果:屏幕顯示:屏幕顯示:=Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C36&字符變量字符變量用于存放單個字符常量,使

41、用用于存放單個字符常量,使用charchar來定義。來定義。字符變量在內存中占字符變量在內存中占一個一個字節(jié)字節(jié)例例2.4 字符變量的值。字符變量的值。#include main() char a=0 x1261,b; b=a-32; printf(%c,%cn%d,%dn ,a,b,a,b);沒有沒有字符串變量字符串變量,用字符數組存放,用字符數組存放字符型變量字符型變量char c1=x,c2=y,c3;char optr;字符型數據和整型數據之間可以通用。字符型數據和整型數據之間可以通用。程序運行的結果為: a,A 97,65當整型變量按字符變量處理時,只有當整型變量按字符變量處理時,只

42、有低八位參與處理。低八位參與處理。Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C2.62.72.82.92.10算術運算符與算術表達式算術運算符與算術表達式賦值運算符與賦值表達式賦值運算符與賦值表達式逗號運算符與逗號表達式逗號運算符與逗號表達式位運算符位運算符數據類型轉換與計算類型長度運算符數據類型轉換與計算類型長度運算符本章主要內容本章主要內容Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算

43、符符及及表表達達式式C C38學習運算符應注意:學習運算符應注意:運算符功能運算符功能與運算量關系與運算量關系要求運算量個數要求運算量個數要求運算量類型要求運算量類型運算符優(yōu)先級別運算符優(yōu)先級別結合方向結合方向結果的類型結果的類型 2.6 2.6 算術運算符和算術表達式算術運算符和算術表達式Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C39基本算術運算符基本算術運算符基本算術運算符:基本算術運算符: + - * / %說明:說明:雙目運算符兩邊的運算對象的類型不一致,使運算雙目運

44、算符兩邊的運算對象的類型不一致,使運算符兩邊的類型達到一致后,再進行運算。符兩邊的類型達到一致后,再進行運算。除運算的結果與運算對象的數據類型有關除運算的結果與運算對象的數據類型有關,兩整數,兩整數相除,結果為整數相除,結果為整數% %要求兩側均為整型數據要求兩側均為整型數據C C語言中,所有實型數的運算均以雙精度方式進行。語言中,所有實型數的運算均以雙精度方式進行。若是單精度,則在尾數部分補若是單精度,則在尾數部分補0 0,使之轉化為雙精度,使之轉化為雙精度數。數。正負號運算符為正負號運算符為+ +(正號)和(正號)和(負號)。它們?yōu)閱危ㄘ撎枺K鼈優(yōu)閱文窟\算符,必須出現在運算對象的左邊,運

45、算對象目運算符,必須出現在運算對象的左邊,運算對象可以是整型,也可以是實型可以是整型,也可以是實型例 5/2 = -5/2.0 =例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例 5/2 = 2 -5/2.0 = -2.5例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ()運算結果是兩數相除后所得的余數,結果的符號與編譯系統(tǒng)有關。在Turbo C和VC中,所得結果的符號與被除數相同。 Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式

46、式C C40算術表達式及算術運算符的優(yōu)先級和結合性算術表達式及算術運算符的優(yōu)先級和結合性算術算術表達式表達式:用算術運算符將運算對象連接起來的表用算術運算符將運算對象連接起來的表達式稱為算術表達式。達式稱為算術表達式。算術表達式運算規(guī)則和要求:算術表達式運算規(guī)則和要求:可使用可使用多層圓括號多層圓括號,但左右,但左右括號必須配對括號必須配對,運算,運算時時從內層圓括號從內層圓括號開始,由內向外依次計算表達式開始,由內向外依次計算表達式的值。的值。按運算符的優(yōu)先級別由高到低進行,若表達式中運按運算符的優(yōu)先級別由高到低進行,若表達式中運算符的級別相同,則按運算符的結合方向進行。算符的級別相同,則按

47、運算符的結合方向進行。Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C41基本算術運算符基本算術運算符對對 象象 數數優(yōu)優(yōu) 先先 級級名名 稱稱運運 算算 符符運運 算算 規(guī)規(guī) 則則運運 算算 對對 象象結結 合合 性性單單目目1正正+取原值取原值整型或實型整型或實型自右自右向左向左負負-取負值取負值雙雙目目2乘乘*乘法乘法整型或實型整型或實型自左自左向右向右除除/除法除法模模%整除取余整除取余整型整型3加加+加法加法整型或實型整型或實型減減-減法減法Copyright Henan

48、 Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C42自增、自減運算符自增、自減運算符+ -+ -作用:使變量值加作用:使變量值加1 1或減或減1 1種類:種類:前置前置 +i, -i (+i, -i (先執(zhí)行先執(zhí)行i i+1+1或或i-1i-1,再使用再使用i i值)值)后置后置 i+,i- (i+,i- (先使用先使用i i值值, ,再執(zhí)行再執(zhí)行i i+1+1或或i-1i-1)例例2.5 自增、自減運算符的使用。自增、自減運算符的使用。#include main() int i=5,x; x=i+; prin

49、tf(i=%d,x=%dn,i,x); printf(%dt,+i); printf(%dt,-i); printf(%dt,i-); printf(%dt,-i+); printf(%dn,-i-);程序運行結果如下:i=6,x=57 6 6 -5 -6使用自增、自減運算符時應注意使用自增、自減運算符時應注意:運算對象運算對象不能是常量和表達式不能是常量和表達式當出現難以區(qū)分的若干個當出現難以區(qū)分的若干個+ +或或- -組成運算符串時,組成運算符串時,自自左向右左向右取盡可能多的符號組成運算符。取盡可能多的符號組成運算符。不要在一個表達式中對同一個變量進行多次諸如不要在一個表達式中對同一個變

50、量進行多次諸如i+i+或或+i+i等運算等運算例如寫成:例如寫成:i+i+* *+i+i-+i+i-* *-i-i如i+j應理解為(i+)+j,而不是i+(+j)。Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C2.62.72.82.92.10算術運算符與算術表達式算術運算符與算術表達式賦值運算符與賦值表達式賦值運算符與賦值表達式逗號運算符與逗號表達式逗號運算符與逗號表達式位運算符位運算符數據類型轉換與計算類型長度運算符數據類型轉換與計算類型長度運算符本章主要內容本章主要內容Cop

51、yright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C44簡單賦值運算符簡單賦值運算符符號:符號: = =格式:格式: 變量變量= =表達式表達式作用:將一個數據(常量或表達式)賦給一個變量作用:將一個數據(常量或表達式)賦給一個變量復合賦值運算符復合賦值運算符種類種類:+= -= += -= * *= /= %= /= %= = = = &= = |= &= = |=含義:含義: exp1 op= exp2exp1 op= exp2 exp1 = exp1 op exp2ex

52、p1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例例 a=3;a=3; d=func(); d=func(); c=d+2; c=d+2; 2.7 2.7 賦值運算符和賦值表達式賦值運算符和賦值表達式Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C45說明說明: :結合方向:結合方向:自右向左自右向左優(yōu)先級優(yōu)先級: :只高于逗號運算符,比任何其他運算符的優(yōu)先級都低只高于逗號運算符,比任何其他運算符的優(yōu)先級都低左側必須是變量,不能是

53、常量或表達式左側必須是變量,不能是常量或表達式賦值轉換賦值轉換規(guī)則規(guī)則: :使賦值號右邊表達式值使賦值號右邊表達式值自動自動轉換成其左邊變量的轉換成其左邊變量的類型類型例例 3=x-23=x-2* *y;y; a+b=3; a+b=3;例例 float f; int i; i=10; f=i;則則 f=10.0例例 int i; i=2.56; /結果結果i=2;例例: a=b=c=5: a=b=c=5 a=(b=5) a=(b=5) a=5+(c=6) a=5+(c=6) a=(b=4)+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) a=(b=10)/(c=2)/表達

54、式值為表達式值為5 5,a,b,ca,b,c值為值為5 5/ b=5;a=5/ b=5;a=5/表達式值表達式值1111,c=6,a=11c=6,a=11/表達式值表達式值1010,a=10,b=4,c=6a=10,b=4,c=6/表達式值表達式值5 5,a=5,b=10,c=2a=5,b=10,c=2Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C46說明說明: :結合方向:結合方向:自右向左自右向左左側必須是變量,不能是常量或表達式左側必須是變量,不能是常量或表達式賦值表達式的

55、值與變量值相等賦值表達式的值與變量值相等, ,且可嵌套且可嵌套賦值轉換賦值轉換規(guī)則規(guī)則: :使賦值號右邊表達式值使賦值號右邊表達式值自動自動轉換成其轉換成其左邊變量的類型左邊變量的類型例例: : a=12; a=12; a+=a-=a a+=a-=a* *a a例例:int a=2; :int a=2; a%=4-1; a%=4-1; a+=a a+=a* *=a-=a=a-=a* *=3; =3; /a=-264 /a=-264 等價于等價于a=a+(a=a-(aa=a+(a=a-(a* *a)a)/a=0 /a=0 等價于等價于a=a+(a=aa=a+(a=a* *(a=a-(a=a(a=

56、a-(a=a* *3)3)Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C2.62.72.82.92.10算術運算符與算術表達式算術運算符與算術表達式賦值運算符與賦值表達式賦值運算符與賦值表達式逗號運算符與逗號表達式逗號運算符與逗號表達式位運算符位運算符數據類型轉換與計算類型長度運算符數據類型轉換與計算類型長度運算符本章主要內容本章主要內容Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及

57、表表達達式式C C48形式:形式:表達式表達式1 1, ,表達式表達式2 2, ,表達式表達式n n結合性結合性: :從左向右從左向右優(yōu)先級優(yōu)先級: :在所有運算符中是最低的在所有運算符中是最低的逗號表達式逗號表達式的值:等于表達式的值:等于表達式n n的值的值用途:用途:常用于循環(huán)常用于循環(huán)forfor語句中語句中例例 a=3*5,a*4 a=3*5,a*4,a+5例例 x=(a=3,6*3) x=a=3,6*a例例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); /a=15,表達式值表達式值60/

58、a=15,表達式值表達式值20/賦值表達式,表達式值賦值表達式,表達式值18,x=18/逗號表達式逗號表達式,表達式值表達式值18,x=3/1,2,3/3,2,3 2.8 2.8 逗號運算符和逗號表達式逗號運算符和逗號表達式例例2.6 逗號運算符。逗號運算符。#include main() int x,a; x=(a=3,6*3); printf(a=%d,x=%dn,a,x); x=a=3,6*a; printf(a=%d,x=%dn,a,x);程序運行的結果應為:程序運行的結果應為:a=3,x=18a=3,x=3Copyright Henan Polytechnic University

59、語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C2.62.72.82.92.10算術運算符與算術表達式算術運算符與算術表達式賦值運算符與賦值表達式賦值運算符與賦值表達式逗號運算符與逗號表達式逗號運算符與逗號表達式位運算符位運算符數據類型轉換與計算類型長度運算符數據類型轉換與計算類型長度運算符本章主要內容本章主要內容Copyright Henan Polytechnic University 語語言言第第 2 2 章章基基本本數數據據類類型型運運算算符符及及表表達達式式C C50位運算符位運算符種類種類: & | & |位運算:對運算對象按二進

60、制位進行操作。位運算:對運算對象按二進制位進行操作。位運算對象:只能是整型或字符型數據,不能是其位運算對象:只能是整型或字符型數據,不能是其他類型的數據,其運算結果仍是整型或字符型數據他類型的數據,其運算結果仍是整型或字符型數據:運算對象在運算符的右邊:運算對象在運算符的右邊功能:對運算對象的各二進位按位求反,功能:對運算對象的各二進位按位求反,即使每一位上的即使每一位上的0 0變變1 1;變;變1 1為為0 0。例例 9 9:運算結果為:運算結果為-10-10 9 9的二進制表示:的二進制表示:00000000000010010000000000001001 按位求反后為:按位求反后為:11111111111101101111111111110110即:即:-10-10:左移:左移例如:例如:char a=19,b;char

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論