單片機(jī)C程序設(shè)計(jì)2_第1頁
單片機(jī)C程序設(shè)計(jì)2_第2頁
單片機(jī)C程序設(shè)計(jì)2_第3頁
單片機(jī)C程序設(shè)計(jì)2_第4頁
單片機(jī)C程序設(shè)計(jì)2_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、單片機(jī)單片機(jī)C程序設(shè)計(jì)程序設(shè)計(jì) (C Programming for MCU)第二章第二章 C語言基礎(chǔ)語言基礎(chǔ)2本章內(nèi)容n2.1 C語言字符集與標(biāo)識符n2.2 常量與變量n2.3 基本數(shù)據(jù)類型n2.4 運(yùn)算符與表達(dá)式n2.5 數(shù)據(jù)的輸入輸出2.1 C語言字符集與標(biāo)識符3計(jì)算機(jī)語言的基本體系結(jié)構(gòu)計(jì)算機(jī)語言的基本體系結(jié)構(gòu)自然語言的基本體系結(jié)構(gòu)自然語言的基本體系結(jié)構(gòu)字符字符詞匯詞匯短語短語句子句子段落段落文章文章基本符號基本符號常量、變量、常量、變量、運(yùn)算符等運(yùn)算符等表達(dá)式表達(dá)式語句語句函數(shù)函數(shù)C C程序程序2.1.1 C語言字符集42626個(gè)個(gè)小寫字母小寫字母 abcdefghijklmnopqr

2、stuvwxyz 2626個(gè)個(gè)大寫字母大寫字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1010個(gè)個(gè)阿拉伯?dāng)?shù)字阿拉伯?dāng)?shù)字 0 1 2 3 4 5 6 7 8 9 其他符號其他符號 + - * / = , . _ : ; ? | ! # % & () 空格空格 C語言語言基本字符基本字符2.1.2 C語言標(biāo)識符5標(biāo)識符標(biāo)識符是一個(gè)字符序列,用來標(biāo)識變量名、函數(shù)名是一個(gè)字符序列,用來標(biāo)識變量名、函數(shù)名、數(shù)據(jù)類型等。、數(shù)據(jù)類型等。標(biāo)識符分為三類:預(yù)定義標(biāo)識符、關(guān)鍵字標(biāo)識符和標(biāo)識符分為三類:預(yù)定義標(biāo)識符、關(guān)鍵字標(biāo)識符和自定義標(biāo)識符。自定義標(biāo)識符。n預(yù)定預(yù)定義標(biāo)識符:也叫保留標(biāo)識符

3、,是系統(tǒng)預(yù)先定義義標(biāo)識符:也叫保留標(biāo)識符,是系統(tǒng)預(yù)先定義好,主要有庫函數(shù)名好,主要有庫函數(shù)名 (如(如main,printf,scanfmain,printf,scanf, , sin,abssin,abs等)、預(yù)編譯命令(如等)、預(yù)編譯命令(如definedefine、includeinclude)62.1.2 C語言標(biāo)識符int autogotoiffloatstaticreturnelsecharexternbreakwhileshortregistercontinueforlongdounsignedswitchdoublecasestructdefaultunionvoidenumt

4、ypedefsizeofconstsignedn關(guān)鍵字標(biāo)識符關(guān)鍵字標(biāo)識符: 2.1.2 C語言標(biāo)識符7n自定義標(biāo)識符:自定義標(biāo)識符:標(biāo)識符標(biāo)識符可以由大寫字母、小寫字母、下劃線(可以由大寫字母、小寫字母、下劃線(_ _)和)和數(shù)字?jǐn)?shù)字0 09 9組成,組成,但必須是以大寫字母、小寫字母或下但必須是以大寫字母、小寫字母或下劃線(劃線(_ _)開頭)開頭。大小寫敏感大小寫敏感,標(biāo)識符的大小寫是有區(qū)別的。,標(biāo)識符的大小寫是有區(qū)別的。標(biāo)識符長度:不同編譯器都有自己的規(guī)定,標(biāo)識符長度:不同編譯器都有自己的規(guī)定,Turbo CTurbo C規(guī)定為規(guī)定為3232個(gè)字符,個(gè)字符,VCVC編譯器為編譯器為409

5、54095個(gè)字符。個(gè)字符。自定義標(biāo)識符自定義標(biāo)識符不能不能與與關(guān)鍵字關(guān)鍵字標(biāo)識符標(biāo)識符同名同名。2.1.2 標(biāo)識符命名示例判斷下面哪些是合法的標(biāo)識符: MyFileSalary 94amountvoid94SalarySalary94$amountf3.5Num_of_Student82.2 變量與常量計(jì)算機(jī)高級語言中,數(shù)據(jù)有兩種表現(xiàn)形式:在程序執(zhí)行過程中可以改變的量。變量指在程序執(zhí)行中不變的量。常量92.2.1 變量變量的定義 定義變量是用下面的格式語句進(jìn)行定義的: ; 說明:(1) 變量在使用前必須進(jìn)行定義。 (2) 在同一個(gè)程序塊中,不能有兩個(gè)相同的變量名。 (3) 變量名必須符合命名規(guī)

6、則。 變量的初始化程序中常需要對一些變量預(yù)先設(shè)置初值,這一過程稱為初始化??梢栽诙x變量時(shí)同時(shí)使變量初始化,也可以在多個(gè)變量的定義語句中單獨(dú)對某個(gè)變量初始化。例:int len=320; double pos=1.25;注意:一個(gè)未初始化的變量不是沒有數(shù)值,而是取決于變量在系統(tǒng)中的存儲形式,它可能是系統(tǒng)的缺省值或無效值。 102.2.2 常量常量:指在程序執(zhí)行中不變的量。如25,-3.26,a,“hello”等整型常量 (1) 十進(jìn)制整型常量:即十進(jìn)制整數(shù),如34、128等。(2)八進(jìn)制整型常量:以0開頭的數(shù),由0至7的數(shù)字組成,如04、012等。(3)十六進(jìn)制整型常量:以0 x或0X開頭的數(shù)

7、,由0至9、A至F或a至f組成,如0 xFF,0 x16,0 x2C等。需要注意的是:n整型常量中的長整型(long)要以L或小寫字母l作為結(jié)尾,如10L,32L等n整型常量中的無符號型(unsigned)要以U或u作為結(jié)尾,如10U,32U等。 112.2.2 常量實(shí)型常量 實(shí)型常量即以文字形式出現(xiàn)的實(shí)數(shù),實(shí)數(shù)只允許使用十進(jìn)制,它可以有兩種表示形式:(1) 一般形式:由正負(fù)號、數(shù)字和小數(shù)點(diǎn)組成,必須有一個(gè)且僅有一個(gè)小數(shù)點(diǎn)。如0.0 0.123 .123 -123.0 0.123等。 (2) 指數(shù)形式:采用科學(xué)表示法,能表示出很大或很小的浮點(diǎn)數(shù)。 如:32.5 可表示為325E-1、0.325

8、E2n若浮點(diǎn)型常量是以F(或f)結(jié)尾的,則表示單精度類型(float),以L(或小寫字母l)結(jié)尾的,表示長雙精度類型(long double)。如 0.123F -0.123L 等n若一個(gè)浮點(diǎn)型常量沒有任何說明,表示雙精度類型(double)。 如0.123 -0.123等尾數(shù)尾數(shù) e或或E 指數(shù)指數(shù) 1122.2.2 常量字符常量 字符常量是用單引號括起來的一個(gè)字符。Aa等n 換行換行 單引號單引號 ()r 回車回車 雙引號雙引號 ()t 水平水平tab 反斜杠反斜杠 ()v 垂直垂直tab0 空值空值b 退格退格ooo 三位八進(jìn)制數(shù)三位八進(jìn)制數(shù)f 進(jìn)紙進(jìn)紙xhh 兩兩位十六進(jìn)制數(shù)位十六進(jìn)制

9、數(shù)C C 轉(zhuǎn)義字符轉(zhuǎn)義字符132.2.2 常量h he el ll lo o00 因此,長度為n個(gè)字符的字符串常量,在內(nèi)存中占用n+1個(gè)字節(jié)。注意事項(xiàng):字符字符與與字符串字符串不等價(jià)。例如:不等價(jià)。例如:“A”A”與與AA,前者由兩個(gè)字節(jié)組成,前者由兩個(gè)字節(jié)組成( (字符字符AA與字符與字符0)0),而后者只有一個(gè)字節(jié)。,而后者只有一個(gè)字節(jié)。最短的字符串是最短的字符串是空字符串空字符串(“”)(“”),它僅由一個(gè)結(jié)尾符,它僅由一個(gè)結(jié)尾符00組成。組成。C C中,沒有字符串類型,而是用中,沒有字符串類型,而是用字符數(shù)組字符數(shù)組來處理字符串。來處理字符串。字符串常量字符串常量 字符串常量是用雙引號

10、(定界符)括起來的一串字符,如“”、“A”、“12.42”、“hello”。C中字符串常量在內(nèi)存中存儲時(shí)用字符數(shù)組存放,系統(tǒng)將自動(dòng)在其尾部追加一個(gè)0字符作為結(jié)束字符。142.2.2 常量布爾常量布爾常量 布爾型常量的取值只有兩個(gè):false(假)、true(真)符號常量符號常量 用#define定義符號常量。 用const定義的變量代替符號常量,即常變量。例:#default PI 3.14159 const double PI = 3.14159; 152.3 數(shù)據(jù)類型 指針類型指針類型 type* 空類型空類型 void 枚舉類型枚舉類型 enum 結(jié)構(gòu)類型結(jié)構(gòu)類型 struct 聯(lián)合類型

11、聯(lián)合類型 union 函數(shù)類型函數(shù)類型 數(shù)據(jù)數(shù)據(jù)類型類型整型整型 int short long 字符型字符型 char(屬于屬于1字節(jié)的整型字節(jié)的整型) 單精度浮點(diǎn)型單精度浮點(diǎn)型float實(shí)型實(shí)型 雙精度浮點(diǎn)型雙精度浮點(diǎn)型double 長雙精度浮點(diǎn)型長雙精度浮點(diǎn)型 long double布爾邏輯型布爾邏輯型 bool基本數(shù)基本數(shù)據(jù)類型據(jù)類型非基本非基本數(shù)據(jù)類型數(shù)據(jù)類型16 2.3.1 基本數(shù)據(jù)類型整型(int):用來存放整數(shù),整數(shù)占用的字節(jié)數(shù)與機(jī)型有關(guān),32位機(jī)上占用4個(gè)字節(jié)。字符型(char):用來保存字符,存儲的是該字符的ASCII碼,占用一個(gè)字節(jié)。例如字符A的ASCII碼為65,字符a的

12、ASCII碼為97。字符型數(shù)據(jù)從本質(zhì)上說也是整數(shù),可以是任何一個(gè)8位二進(jìn)制整數(shù)。實(shí)型:單精度(float)和雙精度型(double)都用來存放實(shí)數(shù),兩者表示的實(shí)數(shù)精度不同。 float類型是4字節(jié)的浮點(diǎn)數(shù)。double是8字節(jié)的浮點(diǎn)數(shù),double類型是浮點(diǎn)數(shù)的缺省類型。邏輯型(bool):也稱布爾型,其取值為true和false。布爾型在運(yùn)算中可以和整型相互轉(zhuǎn)化,false對應(yīng)為0,true對應(yīng)為1或非0。17基本數(shù)據(jù)類型除上述基本數(shù)據(jù)類型外,還有一些類型修飾符,它用來改變基本類型的意義。n修飾符有short(短型符) 、1ong(長型符)、signed(有符號)和unsigned(無符號)

13、。 nshort:只修飾int,short int可省略為shortnlong:修飾int和double, long int可省略為long,一般表示4個(gè)字節(jié),修飾long double時(shí),一般表示8字節(jié)。nunsigned和signed:能修飾char, short, int和long。18數(shù)據(jù)類型示例符符號號位位15個(gè)數(shù)據(jù)位個(gè)數(shù)據(jù)位2個(gè)字節(jié)個(gè)字節(jié)16個(gè)數(shù)據(jù)位個(gè)數(shù)據(jù)位2個(gè)字節(jié)個(gè)字節(jié)19C基本數(shù)據(jù)類型 類型名類型名type 說明說明長度長度 數(shù)據(jù)范圍數(shù)據(jù)范圍 bool布爾邏輯型布爾邏輯型 1 true (1) false(0) char字符型字符型 1 -128127 (0255) unsig

14、ned char無符號字符型無符號字符型 1 0255 signed char有符號字符型有符號字符型 1 -128127signed short int有符號短整型有符號短整型 2-3276832767unsigned short int無符號短整型無符號短整型 2065535signed int有符號整型有符號整型 4-21474836482147483647 unsigned int無符號整型無符號整型 4 04294967295 signed long int有符號長整型有符號長整型 4 -21474836482147483647 unsigned long int無符號長型型無符號長

15、型型 4 04294967295 float浮點(diǎn)型浮點(diǎn)型 4 -3.4*10e383.4*10e38 double雙精度型雙精度型 8 -1.7*10e3081.7*10e308long double長雙精度型長雙精度型8/ 10至少與至少與double類型范圍相同類型范圍相同212.3.2 類型轉(zhuǎn)換nC語言類型轉(zhuǎn)換通常是自動(dòng)的語言類型轉(zhuǎn)換通常是自動(dòng)的- 隱式隱式(自動(dòng)自動(dòng))類型轉(zhuǎn)換類型轉(zhuǎn)換1)字符與整數(shù))字符與整數(shù)可以用整數(shù)的地方就可以用字符??梢杂谜麛?shù)的地方就可以用字符。而整數(shù)轉(zhuǎn)換成字符時(shí),超出而整數(shù)轉(zhuǎn)換成字符時(shí),超出8位就將高位丟掉。位就將高位丟掉。2)浮點(diǎn)數(shù)與整數(shù))浮點(diǎn)數(shù)與整數(shù)3)無符

16、號整數(shù))無符號整數(shù)一般整數(shù)(一般整數(shù)(int)和無符號整數(shù)()和無符號整數(shù)(unsigned)混合使用,)混合使用,則簡單整數(shù)轉(zhuǎn)換成無符號整數(shù)。則簡單整數(shù)轉(zhuǎn)換成無符號整數(shù)。222.3.2 類型轉(zhuǎn)換4)算術(shù)轉(zhuǎn)換)算術(shù)轉(zhuǎn)換如果一個(gè)運(yùn)算符,有不同類型的運(yùn)算對象,那么如果一個(gè)運(yùn)算符,有不同類型的運(yùn)算對象,那么“較低較低”類型會(huì)自動(dòng)轉(zhuǎn)換成類型會(huì)自動(dòng)轉(zhuǎn)換成“較高較高”類型。類型。此外,賦值號右邊表達(dá)式的類型會(huì)自動(dòng)轉(zhuǎn)換為賦值號左邊此外,賦值號右邊表達(dá)式的類型會(huì)自動(dòng)轉(zhuǎn)換為賦值號左邊變量類型變量類型。如,n+1.5結(jié)果將為double類型232.3.2 類型轉(zhuǎn)換n強(qiáng)制類型轉(zhuǎn)換(強(qiáng)制類型轉(zhuǎn)換(cast)- 顯式類

17、型轉(zhuǎn)換顯式類型轉(zhuǎn)換()如:x = sqrt(double) n ); a=(int)b;2.4 運(yùn)算符和表達(dá)式 1 算術(shù)運(yùn)算符 算術(shù)運(yùn)算符如下所示:+(正號運(yùn)算符,如+4,+1.23等)-(負(fù)號運(yùn)算符,如-4,-1.23等)*(乘法運(yùn)算符,如6*8,1.4*3.56等)(除法運(yùn)算符,如6/8,1.4/3.56等)%(模運(yùn)算符或求余運(yùn)算符,如40%11等)+(加法運(yùn)算符,如6+8,1.4+3.56等)-(減法運(yùn)算符,如6-8,1.4-3.56等) +(增1,如i+)-(減1,如i-) 2442.4 運(yùn)算符和表達(dá)式 (1) 除法運(yùn)算 兩個(gè)整數(shù)相除,結(jié)果為整數(shù),如7/5的結(jié)果為1,它是將小數(shù)部分去掉

18、,而不是四舍五入;若除數(shù)和被除數(shù)中有一個(gè)是浮點(diǎn)數(shù),則進(jìn)行浮點(diǎn)數(shù)除法,結(jié)果是浮點(diǎn)型。如7/5.0、7.0/5、7.0/5.0的結(jié)果都是1.4。(2) 求余運(yùn)算 求余運(yùn)算要求參與運(yùn)算的兩個(gè)操作數(shù)都是整型,結(jié)果是兩個(gè)數(shù)相除的余數(shù)。例如40%5的結(jié)果是0,40%11的結(jié)果是7。要理解負(fù)值的求余運(yùn)算,例如40%-11結(jié)果是7,-40%11結(jié)果是-7, -40%-11結(jié)果也是-7。 2552.4 運(yùn)算符和表達(dá)式 (3) 優(yōu)先級算術(shù)運(yùn)算符算術(shù)運(yùn)算符運(yùn)算運(yùn)算優(yōu)先級別優(yōu)先級別()()改變正常優(yōu)先級1-,+,-負(fù)號、增1、減1 (單目運(yùn)算符單目運(yùn)算符)2*, /, %乘法、除法、求余(雙目運(yùn)算符雙目運(yùn)算符)3+,

19、 -加、減法(雙目運(yùn)算符雙目運(yùn)算符)4單目運(yùn)算符只有一個(gè)操作數(shù),雙目運(yùn)算符有兩個(gè)操作數(shù)。如:i+; /1個(gè)操作數(shù)i a+b;/有a和b兩個(gè)操作數(shù)2662.4 運(yùn)算符和表達(dá)式 2 賦值運(yùn)算符 = 例:a=a+1;n符合賦值運(yùn)算符:+=(加賦值), -=(減賦值), *=(乘賦值), /=(除賦值), %=(取余賦值),&=(按位與賦值), =(按位異或賦值), |=(按位或賦值), =(按位右移賦值)。 例:a+=1; 等價(jià)于 a=a+1;n多個(gè)變量同時(shí)賦初值: 例:int a=3, b=3, c=3; 表示a,b,c都賦初值3,不能寫成: int a=b=c=3; 2772.4運(yùn)算符和

20、表達(dá)式3 數(shù)據(jù)類型轉(zhuǎn)換n自動(dòng)轉(zhuǎn)換(隱式轉(zhuǎn)換) 將數(shù)據(jù)類型從低到高進(jìn)行轉(zhuǎn)換。 例如:2*1.25 2*1.25的運(yùn)算,將2和1.25都轉(zhuǎn)換成double型,結(jié)果為double型的2.5。n強(qiáng)制轉(zhuǎn)換(顯示轉(zhuǎn)換) 強(qiáng)制類型有下列兩種格式:()整型整型(int)無符號整型無符號整型(unsigned)長整型長整型(long)無符號長整無符號長整型型(unsigned long)雙精度浮點(diǎn)雙精度浮點(diǎn)型型(double)短整型短整型,字符字符型型(short, char)單精度浮點(diǎn)單精度浮點(diǎn)型型(float)類型類型轉(zhuǎn)換的順序轉(zhuǎn)換的順序2882.3運(yùn)算符和表達(dá)式4 關(guān)系運(yùn)算符 n是比較兩個(gè)操作數(shù)是否符合給

21、定的條件。若符合條件,則關(guān)系表達(dá)式的值為“真”,否則為“假”。n由于關(guān)系運(yùn)算需要兩個(gè)操作數(shù),所以關(guān)系運(yùn)算符都是雙目運(yùn)算符。n提供了6種關(guān)系運(yùn)算符:(小于),(大于),=(大于等于),= =(相等于), ! =(不等于)其中,前4種的優(yōu)先級相同且高于后面的兩種。例如:a = b c 等效于 a = ( b c )2992.3運(yùn)算符和表達(dá)式5 邏輯運(yùn)算符 n提供了3種邏輯運(yùn)算符: &邏輯與(雙目):指兩個(gè)操作數(shù)都是“真”時(shí),結(jié)果為“真”,否則為“假”。 |邏輯或(雙目):指兩個(gè)操作數(shù)中有一個(gè)是“真”時(shí),結(jié)果為“真”,只有它們都為“假”時(shí),結(jié)果才為“假”。 ! 邏輯非(單目):指將“真”變“

22、假”,“假”變“真”。n“邏輯非”、“邏輯與”和“邏輯或”的優(yōu)先級依次從高到低,且“邏輯非”的優(yōu)先級還比算術(shù)運(yùn)算符和關(guān)系運(yùn)算符高,而“邏輯與”和“邏輯或”的優(yōu)先級卻比關(guān)系運(yùn)算符要低。n例如: 0 | 8 4 - !0表達(dá)式的運(yùn)算過程是這樣的:(1) 進(jìn)行“!0”的運(yùn)算,結(jié)果為1(“真”)。(2) 進(jìn)行“8 4-1”的運(yùn)算,即“8 3”,結(jié)果為0(“假”)。(3) 進(jìn)行“0|0” 的運(yùn)算,結(jié)果為0(“假”)。表達(dá)式的值為0。 302.3運(yùn)算符和表達(dá)式6 位運(yùn)算符 是對操作數(shù)按其在計(jì)算機(jī)內(nèi)表示的二制數(shù)逐位地進(jìn)行邏輯運(yùn)算或移位運(yùn)算,參與運(yùn)算的操作數(shù)只能是整型常量或變量。提供了六種位運(yùn)算符: (按位求

23、反,單目運(yùn)算符):將一個(gè)二進(jìn)制數(shù)的每一位求反,即0變成1,1變成0。 (右移,雙目運(yùn)算符):將左操作數(shù)的二進(jìn)制值向右移動(dòng)指定的位數(shù),右移后,移出的低位舍棄。無符號數(shù)高位補(bǔ)0;有符號數(shù)高位補(bǔ)符號位。& (按位與,雙目運(yùn)算符):將兩個(gè)操作數(shù)對應(yīng)的二進(jìn)制位進(jìn)行邏輯與操作。 (按位異或,雙目運(yùn)算符):將兩個(gè)操作數(shù)對應(yīng)的二進(jìn)制位進(jìn)行異或操作。 | (按位或,雙目運(yùn)算符):將兩個(gè)操作數(shù)對應(yīng)的二進(jìn)制位進(jìn)行邏輯或操作。312.3運(yùn)算符和表達(dá)式7 三目運(yùn)算符 C中唯一的三目運(yùn)算符是條件運(yùn)算符,其格式如下: ? :“條件表達(dá)式”是C中可以產(chǎn)生“真”和“假”結(jié)果的任何表達(dá)式,如果條件表達(dá)式的結(jié)果為“真”,則

24、執(zhí)行表達(dá)式1,否則執(zhí)行表達(dá)式2。 例如:num = (a b) ? 10 : 8;注意:只有在表達(dá)式2后面才能出現(xiàn)分號結(jié)束符,“表達(dá)式1”和“表達(dá)式2”中都不能有分號。 322.3運(yùn)算符和表達(dá)式8 逗號運(yùn)算符 逗號運(yùn)算符是優(yōu)先級最低的運(yùn)算符,它可以使多個(gè)表達(dá)式放在一行上,從而大大簡化了程序。在計(jì)算時(shí),C將從左至右逐個(gè)計(jì)算每個(gè)表達(dá)式,最終整個(gè)表達(dá)式的結(jié)果是最后計(jì)算的那個(gè)表達(dá)式的類型和值。例如:j = ( i = 12 , i + 8); /J=20d = (a = 1, b = a + 2, c = b + 3);/d=6332.3運(yùn)算符和表達(dá)式9 sizeof 運(yùn)算符 sizeof:是返回操作

25、數(shù)所占的內(nèi)存空間大小(字節(jié)數(shù)),具有兩種格式:sizeof()sizeof()例如:sizeof(“Hello”)/ 計(jì)算字符串常量“Hello”的實(shí)際長度(字符個(gè)數(shù)),結(jié)果為6sizeof(int)/ 計(jì)算整型int所占內(nèi)存的字節(jié)數(shù)說明:由于同一類型的操作數(shù)在不同的計(jì)算機(jī)中占用的存儲字節(jié)數(shù)可能不同,因此sizeof的結(jié)果有可能不一樣。例如sizeof(int)的值可能是4,也可能是2。 34352.3運(yùn)算符和表達(dá)式增(減)量運(yùn)算符:+,-n依據(jù)運(yùn)算符與運(yùn)算對象間的位置,分為前置和后置運(yùn)算l前置運(yùn)算是先進(jìn)行增減量,再取其值。l后置運(yùn)算是先取其值,再進(jìn)行增減量運(yùn)算。如:n = 5;n = 5;x

26、 = +n;x = n+;結(jié)果: ? 結(jié)果:?x: 6, n: 6x: 5, n: 6像像+,-這類只要求一個(gè)運(yùn)算對象的運(yùn)算符又稱為單目運(yùn)算符(這類只要求一個(gè)運(yùn)算對象的運(yùn)算符又稱為單目運(yùn)算符(unary operators)。)。+,-運(yùn)算符在有些書中稱為自增(減)運(yùn)算符。運(yùn)算符在有些書中稱為自增(減)運(yùn)算符。例1_1給出下列程序的輸出結(jié)果#include main( )int a, b, c;a = b = c = 0;a = +b + +c;printf(“%d %d %dn”,a, b, c);a = b+ + c+;printf(“%d %d %dn”,a, b, c);a = +b

27、+ c+;printf(“%d %d %dn”,a, b, c);a = b- + -c;printf(“%d %d %dn”,a, b, c);a = +c + c;printf(“%d %d %dn”,a, b, c); /* 2 1 1 */* 2 2 2 */* 5 3 3 */* 5 2 2 */* 不確定,取決于機(jī)器實(shí)現(xiàn)不確定,取決于機(jī)器實(shí)現(xiàn) */2.3運(yùn)算符和表達(dá)式3637運(yùn)算符優(yōu)先級及結(jié)合律優(yōu)先級 運(yùn)算符 結(jié)合律 初等量運(yùn)算符 初等量運(yùn)算符 1 ( ) . - 單目運(yùn)算符 2 - ! + - * ( 類型名) sizeof 右結(jié)合 單目運(yùn)算符 雙目運(yùn)算符 3 * / % 算術(shù)運(yùn)算符 4 + - 5 移位運(yùn)算符 6 = 關(guān)系運(yùn)算符 7 = != 8 & 按位運(yùn)算符 9 10 | 11 & 邏輯運(yùn)算符 12 | 三目運(yùn)算符 13 ? : 右結(jié)合 賦值運(yùn)算符 14 *= /= %= += -= = &= = |= 右結(jié)合 逗號運(yùn)算符 15 , 38運(yùn)算符優(yōu)先級及結(jié)合律(續(xù))n可以使用()運(yùn)算符來改變表達(dá)式中運(yùn)算符的計(jì)算次序。如:(x+y) / 12if( (x = n) 0)while( (c = getchar() ) != EOF)392.3運(yùn)算符和表達(dá)式n在

溫馨提示

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

評論

0/150

提交評論