第3章-C語言運算符_第1頁
第3章-C語言運算符_第2頁
第3章-C語言運算符_第3頁
第3章-C語言運算符_第4頁
第3章-C語言運算符_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2021/8/61第三章第三章C C語言運算符語言運算符2021/8/62回顧回顧q變量和常量的含義變量和常量的含義q熟悉基本數(shù)據類型熟悉基本數(shù)據類型 - int、char、float 和和 doubleq使用算術運算符使用算術運算符q理解類型轉換理解類型轉換q熟練使用熟練使用 scanf() 和和 printf() 函數(shù)函數(shù)2021/8/63q算術運算符算術運算符 q增量運算符增量運算符q邏輯運算符邏輯運算符q關系運算符關系運算符q 按位運算符按位運算符 qC的特殊運算符的特殊運算符 -“?” “&”和和“*”, “,” q運算符的優(yōu)先級運算符的優(yōu)先級 2021/8/64C語言運算符

2、概述語言運算符概述q運算符:是用來表示各種運算的符號。運算符:是用來表示各種運算的符號。q表達式:用運算符將運算對象連接起來形成的運表達式:用運算符將運算對象連接起來形成的運 算式。算式。qC C語言運算符:是一種向編譯程序說明一個特定的語言運算符:是一種向編譯程序說明一個特定的數(shù)學或邏輯運算的符號。運算符必數(shù)學或邏輯運算的符號。運算符必須有運算對象。須有運算對象。qC C語言運算符的分類語言運算符的分類算術運算符算術運算符 關系運算符與邏輯運算符關系運算符與邏輯運算符 按位運算符按位運算符 2021/8/65算術運算符算術運算符q 算術運算符的運算規(guī)則如下表所示:算術運算符的運算規(guī)則如下表所

3、示:2021/8/66注意事項注意事項q 正、負運算是單目運算符,結合性是自右向左的。正、負運算是單目運算符,結合性是自右向左的。q 除法運算與運算對象的數(shù)據類型有關。若兩個對象都是整除法運算與運算對象的數(shù)據類型有關。若兩個對象都是整型數(shù)據,則運算結果是整數(shù)(舍棄小數(shù)部分);若兩個中型數(shù)據,則運算結果是整數(shù)(舍棄小數(shù)部分);若兩個中有一個或兩個都是實型,則運算結果為實型。但是若除數(shù)有一個或兩個都是實型,則運算結果為實型。但是若除數(shù)或被除數(shù)中有一個為負值,則舍入的方向是不固定的?;虮怀龜?shù)中有一個為負值,則舍入的方向是不固定的。q 模運算(模運算(%)要求兩個運算對象必須均為整型數(shù)據。)要求兩個運

4、算對象必須均為整型數(shù)據。q 算術運算符優(yōu)先級別算術運算符優(yōu)先級別q單目算術運算符優(yōu)于雙目算術運算符單目算術運算符優(yōu)于雙目算術運算符q“ *,/,% ”優(yōu)于優(yōu)于“,”;q同級單目算術運算符的結合性滿足右結合,同級雙目算術運算符同級單目算術運算符的結合性滿足右結合,同級雙目算術運算符滿足左結合。滿足左結合。2021/8/67C語言算術表達式語言算術表達式qC語言算術表達式:語言算術表達式:q由算術運算符和括號將運算對象連接起來的、符合由算術運算符和括號將運算對象連接起來的、符合C語語法規(guī)則的式子稱為表達式。運算對象包括常量、變量法規(guī)則的式子稱為表達式。運算對象包括常量、變量和函數(shù)等。和函數(shù)等。q注

5、意事項注意事項:q在表達式求值時,先按運算符的優(yōu)先級別高低順序執(zhí)在表達式求值時,先按運算符的優(yōu)先級別高低順序執(zhí)行。若在一個運算對象兩側的運算符的優(yōu)先級別相同,行。若在一個運算對象兩側的運算符的優(yōu)先級別相同,則按規(guī)定的結合性處理。則按規(guī)定的結合性處理。qC語言中允許種類數(shù)值型數(shù)據之間進行混合運算,在進語言中允許種類數(shù)值型數(shù)據之間進行混合運算,在進行混合運算時,不同類型的數(shù)據要先轉換成同一類型,行混合運算時,不同類型的數(shù)據要先轉換成同一類型,然后再進行運算。然后再進行運算。q字符型常量、字符型變量可以在算術表達式中使用。字符型常量、字符型變量可以在算術表達式中使用。2021/8/68增量運算符增量

6、運算符q增量運算符增量運算符1、自增運算符:、自增運算符:+ x=x+1 可寫成可寫成x+, 或或+x i+與與+i的區(qū)別:的區(qū)別:x= i + 表示將i的值賦給x后, i加1。x=+ i 表示i先加1后,再將新值賦給x。 2、自減運算符:、自減運算符:- - x=x-1 可寫成可寫成x-, 或或-x i - - 與與- - i的區(qū)別:的區(qū)別:x= i - 表示將i的值賦給x后, I減1。x= - i 表示i先減1后,再將新值賦給x。q自增自減運算符都是單目運算符,是對單目整型、自增自減運算符都是單目運算符,是對單目整型、字符型、指針型以及數(shù)組的下標等數(shù)據進行算術字符型、指針型以及數(shù)組的下標等

7、數(shù)據進行算術運算的,運算的結果仍是原數(shù)據類型。運算的,運算的結果仍是原數(shù)據類型。2021/8/69自增自減運算符的運算規(guī)則如下表所示:自增自減運算符的運算規(guī)則如下表所示: 舉例說明舉例說明 :若:若i i為為3 3,則執(zhí)行后:,則執(zhí)行后:(1 1)+i+i/ /* *運算式的值為運算式的值為4 4,i i的值為的值為4 4 * */ /(2 2)i+ /i+ /* *運算式的值為運算式的值為3 3,i i的值為的值為4 4 * */ /(3 3)-i -i / /* *運算式的值為運算式的值為2 2,i i的值為的值為2 2* */ /(4 4)i-i- / /* *運算式的值為運算式的值為3

8、 3,i i的值為的值為2 2 * */ /2021/8/610注意事項注意事項:1、自增自減運算符的運算對象只能是變量,、自增自減運算符的運算對象只能是變量,不能不能用于常量或表達式。用于常量或表達式。 2、自增自減運算符既可以放在運算對象的前、自增自減運算符既可以放在運算對象的前面面(前綴),也可以放在運算對象的后面(后綴),(前綴),也可以放在運算對象的后面(后綴),兩者功能上略有不同。兩者功能上略有不同。3、在表達式中包含自增、自減運算時,要能、在表達式中包含自增、自減運算時,要能正確正確分析,否則很容易出錯。分析,否則很容易出錯。若若i=5,請分析下面語句執(zhí)行后,請分析下面語句執(zhí)行后

9、j、i的值:的值: j=i+; /*j的值為的值為5,i的值為的值為6*/ j=+i; /*j的值為的值為6,i的值為的值為6*/2021/8/611賦值運算符賦值運算符用于將表達式的值賦給變量。是一個雙目運用于將表達式的值賦給變量。是一個雙目運算符,運算符的左邊必須是變量,右邊是表算符,運算符的左邊必須是變量,右邊是表達式,賦值運算符(用達式,賦值運算符(用=表示),用于將表表示),用于將表達式的值賦給變量,結合性是自右向左的。達式的值賦給變量,結合性是自右向左的。例如:例如:int i=5;是將常量值是將常量值5賦給變量賦給變量i.賦值運算符賦值運算符=右側可以是變量或表達式右側可以是變量

10、或表達式. 例如:例如:int i=5,j=i;將變量將變量i的值賦給變量的值賦給變量j. 2021/8/612賦值語句中的數(shù)據類型轉換賦值語句中的數(shù)據類型轉換在賦值語句中,類型轉換規(guī)則是:等號右邊的值轉換為等在賦值語句中,類型轉換規(guī)則是:等號右邊的值轉換為等號左邊變量所屬的類型。號左邊變量所屬的類型。 做除法運算時應特別注意做除法運算時應特別注意 ,例如:,例如:int i=15;float f =i/2; 運行后,運行后,f=7而并不等于準確值而并不等于準確值7.5 正確的做法應該是:正確的做法應該是:int i=15;float f =i/2.0; 也可直接將也可直接將i定義為浮點數(shù)。定

11、義為浮點數(shù)。 2021/8/613邏輯運算符和表達式邏輯運算符和表達式q 邏輯運算符種類:邏輯運算符種類: ! (邏輯非)(邏輯非) &(邏輯與邏輯與) |(邏(邏輯或)輯或)q 邏輯運算真值表邏輯運算真值表: C語言中,運算量: 0表示“假”, 非0表示“真”, 運算結果: 0表示“假”, 1表示“真”,2021/8/614l優(yōu)先級:優(yōu)先級:! & | 高低l結合方向:結合方向:! :從右向左& :從左向右| :從左向右例例 a=x & x=b / (a=x) & (xb&xy /(ab)&(xy) a=b|x=y /(a=b)|(x=

12、y) !a|ab /(!a)|(ab)初學者如果不熟悉邏輯運算符時,就可以寫成上面的注初學者如果不熟悉邏輯運算符時,就可以寫成上面的注釋中帶括號的形式,這樣就很容易區(qū)分和理解其中的各釋中帶括號的形式,這樣就很容易區(qū)分和理解其中的各個表達式。個表達式。2021/8/615關系運算符關系運算符q 關系運算符是比較兩個操作數(shù)大小的符號關系運算符是比較兩個操作數(shù)大小的符號 q C的關系運算符作用對照表的關系運算符作用對照表 :操作符操作符作用作用大于=大于等于小于右移”和和“移位的位數(shù) q左移:變量名移位的位數(shù) 經過移位后,一端的位被經過移位后,一端的位被“擠掉擠掉”,而另一端空出的位以,而另一端空出

13、的位以0填補,所以,填補,所以,C中的移位不是循環(huán)移動的。中的移位不是循環(huán)移動的。 2021/8/618移位的使用技巧移位的使用技巧q可以代替乘法和除法運算,但速度遠遠快于乘法可以代替乘法和除法運算,但速度遠遠快于乘法和除法。和除法。q左移等效于乘法:左移等效于乘法: 左移左移1位位,即箭頭向左即箭頭向左,右側補右側補0,等于乘等于乘21, 左移兩位等于左移兩位等于乘乘22,左移三位等于乘左移三位等于乘23int i=4;int c=i3; /c=16/ 23 =22021/8/619C的特殊運算符的特殊運算符q“?”運算符運算符q“?”運算符是一個三目運算符,其一般形式是:運算符是一個三目運

14、算符,其一般形式是: ? : ; q“?”運算符的含義是:先求表達式運算符的含義是:先求表達式1的值,如果為真,的值,如果為真,則求表達式則求表達式2的值并把它作為整個表達式的值;如果表的值并把它作為整個表達式的值;如果表達式達式1的值為假,則求表達式的值為假,則求表達式3的值并把它作為整個表的值并把它作為整個表達式的值。達式的值。 int x, y; x=50; y=x70 ? 100 : 0 ; /y將被賦值0。 如果x=80,y將被賦值100。q“?”運算符可以代替某些運算符可以代替某些if-else形式的語句。形式的語句。例 x?a:b /x=0,表達式值為b; x0,表達式值為a x

15、y?1:1.5 /xy ,值為1.0; x4&!(10099)|34&!(10099)&3(指針型結構成員指針型結構成員) ! (邏輯非邏輯非) (位取反位取反) -(負號負號) +(加加1) -(減減1) &(變量地址變量地址 ) * (指針所指內容指針所指內容) type(函數(shù)說明函數(shù)說明) sizeof(長度計算長度計算) * (乘乘) /(除除) %(取模取模) + ( 加加) -(減減) (位右移位右移) (小于小于) (大于大于) =(大于等于大于等于) =( =(等于等于) !=() !=(不等于不等于) ) &( &(位與位與) ) ( (位異或位異或) ) | ( | (位或位或) ) &(

溫馨提示

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

評論

0/150

提交評論