C語言第三章(續(xù))課件_第1頁
C語言第三章(續(xù))課件_第2頁
C語言第三章(續(xù))課件_第3頁
C語言第三章(續(xù))課件_第4頁
C語言第三章(續(xù))課件_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、運算符與表達式 第3章(續(xù))運算符與表達式 第3章(續(xù))1. 運算符和表達式2.算術運算符和算術表達式3.賦值運算符和賦值表達式4.自增、自減運算符5.逗號運算符和逗號表達式6 .不同類型數(shù)據(jù)間的混合運算7. 課后作業(yè)本講主要內(nèi)容:1. 運算符和表達式本講主要內(nèi)容:C 運算符1 運算符和表達式表達式是常量、變量、數(shù)組元素、函數(shù)等運算對象和運算符以及括號的有意義組合類似數(shù)學算式或公式,但寫法有不同運算符的優(yōu)先級和結(jié)合性見教材附錄III算術運算符+ - * / %指針運算符* &關系運算符 = = !=求字節(jié)數(shù)運算符sizeof邏輯運算符! & |強制類型轉(zhuǎn)換運算符類型位運算符 | &分量運算符

2、-賦值運算符=下標運算符 條件運算符? :其它逗號運算符,C 運算符1 運算符和表達式表達式是常量、變量、數(shù)組元2 算術運算符和算術表達式2.1、基本的算術運算符+ (加法運算符,或正值運算符):如 2 + 3、+6- (減法運算符,或負值運算符):如 3 - 4、-6* (乘法運算符):如 3 * 4/ (除法運算符):兩個整數(shù)相除,其值為整數(shù),如 5 / 3值為1除數(shù)、被除數(shù)中有一個為負值時,結(jié)果向零取整,如-5/3為 -1除數(shù)、被除數(shù)中有一個為實數(shù)時,結(jié)果為 double 型-7 % 4 ,7 % -4 ,-7 % -4的值為多少?% (模(求余)運算符): % 兩側(cè)均為整型數(shù)據(jù)如 7

3、% 4 的值為 3(-3,3,-3) 2 算術運算符和算術表達式2.1、基本的算術運算符+ (2.2、算術表達式和運算符的優(yōu)先級與結(jié)合型1)用算術運算符和括號將運算對象(操作數(shù))連接起來的、符合 C 語言語法規(guī)則的式子,稱作算術表達式。如:-123 a+b 10*(alpha+1.5)*sin(beta)2)運算符有優(yōu)先級和結(jié)合性優(yōu)先級:算術運算符先 *、 / 、% 后 +、 -結(jié)合型:左結(jié)合,即表達式從左向右進行計算如: a + b /(c + d % e)- 3.3 + 4 * 3 2.2、算術表達式和運算符的優(yōu)先級與結(jié)合型1)用算術運算符和3.3、類型轉(zhuǎn)換與強制類型轉(zhuǎn)換可以利用強制類型轉(zhuǎn)

4、換運算符將一個表達式轉(zhuǎn)換成所需類型。如:( double ) a( int ) ( x + y ) 與 ( int ) x + y不同( float ) ( 8 % 5 )例3.7void main ( )float x;int i;x = 3.6;i = ( int ) x + 2;printf ( %f, %dn, x, i ); 同一運算符相連的運算數(shù)的數(shù)據(jù)類型自動從短類型向長類型轉(zhuǎn)化,如上例3.3、類型轉(zhuǎn)換與強制類型轉(zhuǎn)換可以利用強制類型轉(zhuǎn)換運算符將一3.1.賦值運算符“ =”3. 賦值運算符和賦值表達式用法:變量 = 表達式作用:將表達式的值賦給變量(構成賦值表達式)如:a = 5;5

5、 = a ave = ( a + b ) / 2;先計算(a+b)/2,結(jié)果賦給 ave x = y = z;首先 z = y,然后(y=z)= x與數(shù)學上的等式不同!5 = x; x+1 = y * a + 3; 都是非法的 C 語句說明1:在 C 語言中判斷是否相等用關系運算(= =)。說明2:運算結(jié)果 賦值表達式的值等于左邊變量的值!3.1.賦值運算符“ =”3. 賦值運算符和賦值表達式用法3)整型數(shù)據(jù)賦給實型變量時,數(shù)值不變,但以浮點數(shù)形式存儲到變量中。3.2、賦值結(jié)果與類型轉(zhuǎn)換2)實型數(shù)據(jù)(包括單、雙精度)賦給整型變量時,舍棄實數(shù)的小數(shù)部分。如:設 i 為整型變量,執(zhí)行 i = 5.

6、34 i 的值為 5如:對 float 型變量 f ,執(zhí)行 f = 23 f 的值為 23.000001)如果兩邊的類型一致,就直接賦值;否則需要進行類型轉(zhuǎn)換。3)整型數(shù)據(jù)賦給實型變量時,數(shù)值不變,但以浮點數(shù)形式存儲到變例3.9 main ( )int i;float f;i = 5.34;f = 23;printf ( “i=%d,f= %fn, i, f );上機演示例3.94)無符號整型與有符號整型例3.10void main( )unsigned a;int b = -1;a = b;printf ( %d - %un, b, a );a = 65534u; b = a ;printf

7、 ( %d - %un, b, a ); 1 11 11 11 11 11 11 11 1b11 11 11 11 11 11 11 11 a4)無符號整型與有符號整型例3.10 1 11 11 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 i 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1i5)char、int、long等類型的轉(zhuǎn)換“短”數(shù)據(jù)賦給“長”變量保持數(shù)值不變符號擴展:若最高位為 1(負數(shù)),則變量高字節(jié)位補 1;反之,補 0。 0 0 1 0 1 0 1 1 0 0 例3.12void

8、 main ( )int i;long l = 6324232L;i = l;printf ( i = %dn, i ); “長”數(shù)據(jù)賦給“短”變量截斷:只將數(shù)據(jù)的低字節(jié)位原封不動送到變量中 0 00 00 00 00 00 10 00 1i = -3276010 00 00 00 00 00 10 00 0 0 00 00 00 01 10 00 00 l=6324232程序編譯時有警告錯例3.12 “長”數(shù)據(jù)賦給“短”變量截斷:只將數(shù)據(jù)的低字節(jié)3.3. 復合的賦值運算符例如:a += 3等價于 a = a + 3x *= y + 8等價于 x = x * ( y + 8 ) 注意有括號x

9、%= 3等價于 x = x % 3算術運算:+=,- =,*=,/=,%=位運算: =,&=,=,|=說明:位運算在12章中介紹。賦值運算符與其他運算符的組合構成復合的運算符3.3. 復合的賦值運算符例如:算術運算:+=,- =,*4、自增、自減運算符+ i,-i 在使用 i 之前,先使 i 的值加 1 或減 1i+,i- 在使用 i 之后,使 i 的值加 1 或減 1注意:(1)自增、自減運算符只能用于變量,而不能用于常量或表達式如:5+ ( a+b)+不合法如:-i+ 相當于 - ( i+ )(2)+ 和 - - 的優(yōu)先級高于算術運算符,結(jié)合方向是“自右相左”請自學教材5759頁內(nèi)容4、自

10、增、自減運算符+ i,-i 在使用 i 之前例1void main()int i = 0, j; j = i+; printf (%d %dn, i, j); i = 0; j = +i; printf (%d %dn, i, j);例2 講解演示習題3.10例15. 逗號運算符和逗號表達式形式:表達式1, 表達式2作用:用于連接表達式計算過程:先求解表達式1,在求解表達式2。整個逗號表達式的值是表達式2的值。如: 3+5, 6+8 例: 以下兩個表達式的含義是不同的。 x=(a=3, 6*3) x=a=3,6*a* 逗號表達式可組合 * 逗號運算符的優(yōu)先級最低,結(jié)合方向自右到左說明:并不是任

11、何地方出現(xiàn)的逗號都是逗號運算符如:printf(%d, %d, %dn, a, b, c );如:(a=3*5, a*4), a+55. 逗號運算符和逗號表達式形式:表達式1, 表達式2計算過6 不同類型數(shù)據(jù)間的混合運算整型、實型、字符型數(shù)據(jù)可以混合運算運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型如:10 + a + 12.3 - 3.14x123floatdoublelongunsignedintchar, shortfloat 型先轉(zhuǎn)換成 double 型char 和 short 型先轉(zhuǎn)換成 int 型不同類型數(shù)據(jù)按照類型級別由低到高的順序轉(zhuǎn)換低高轉(zhuǎn)換規(guī)則6 不同類型數(shù)據(jù)間的混合運算整型、實型、字符型數(shù)據(jù)可以混合例:設k=2為int型變量,f1.2為float型,d=4.0為double型??紤]如下式子的運算10 + a + k*f d/k解:原式 = 107 + 2.4 +2.0 = 109.4 + 2.0 = 111.4最后類型為double型。 例:習題3.9 x + a%3*(int)(x+y)%2/4 (x=2.5,a=7,y=4.7)

溫馨提示

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

評論

0/150

提交評論