![C語言 數(shù)據(jù)類型3-2 課件_第1頁](http://file4.renrendoc.com/view/8119745e212a252735c57ece116d3498/8119745e212a252735c57ece116d34981.gif)
![C語言 數(shù)據(jù)類型3-2 課件_第2頁](http://file4.renrendoc.com/view/8119745e212a252735c57ece116d3498/8119745e212a252735c57ece116d34982.gif)
![C語言 數(shù)據(jù)類型3-2 課件_第3頁](http://file4.renrendoc.com/view/8119745e212a252735c57ece116d3498/8119745e212a252735c57ece116d34983.gif)
![C語言 數(shù)據(jù)類型3-2 課件_第4頁](http://file4.renrendoc.com/view/8119745e212a252735c57ece116d3498/8119745e212a252735c57ece116d34984.gif)
![C語言 數(shù)據(jù)類型3-2 課件_第5頁](http://file4.renrendoc.com/view/8119745e212a252735c57ece116d3498/8119745e212a252735c57ece116d34985.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C語言程序設計1 3.6 變量賦初值 (1)語言允許在定義變量的同時使變量初始化如: int a=3; / 指定為整型變量,初值為 float f=3.56; / 指定為浮點型變量,初值為.56 char c= a; / 指定為字符變量,初值為a 2 3.6 變量賦初值 (2)可以使被定義的變量的一部分賦初值。 如: int a,b,c=5; 表示指定、為整型變量,但只對初始化,c的初值為(3)如果對幾個變量賦以同一個初值, 應寫成:int a=3,b=3,c=3; 表示、的初值都是。 不能寫成 int a=b=c3; 注意:初始化不是在編譯階段完成的而是在程序運行時執(zhí)行本函數(shù)時賦初值的,相當
2、于有一個賦值語句。 3 3.6 變量賦初值 main()int a; int b; b=a+2; printf( “%d,%dn”, a,b) ; 變量初始化的應用舉例注意:定義的變量在沒有初始化之前有一個不確 定值。4 3.7 各類數(shù)值型數(shù)據(jù)間的混合運算 混合運算:整型(包括int,short,long)、浮點型(包括float,double)可以混合運算。在進行運算時,不同類型的數(shù)據(jù)要先轉換成同一類型,然后進行運算.說明: 這種類型轉換是由系統(tǒng)自動進行的。5 3.8 術運算符和算術表達式3.8.1 運算符簡介 的運算符有以下幾類:(1)算術運算符 (+ - * / %)(2)關系運算符 (
3、?。?3)邏輯運算符 (!|)(4)位運算符 ( |)(5)賦值運算符 (及其擴展賦值運算符)(6)條件運算符 (?:)(7)逗號運算符 (,)6 3.8 算術運算符和算術表達式(8)指針運算符 (*和)(9)求字節(jié)數(shù)運算符(sizeof( ))(10)強制類型轉換運算符( (類型) )(11)分量運算符(-)(12)下標運算符()(13)其他 (如函數(shù)調用運算符()7 3.8 算術運算符和算術表達式3.8.2 算術運算符和算術表達式 (1)基本的算術運算符: (加法運算符,或正值運算符。如:、) (減法運算符,或負值運算符。如:、)* (乘法運算符。如:*) (除法運算符。如:) (模運算符
4、,或稱求余運算符,兩側均應為整型數(shù)據(jù),如:的值為)。8 3.8 算術運算符和算術表達式(2) 算術表達式和運算符的優(yōu)先級與結合性基本的算術運算符: 用算術運算符和括號將運算對象(也稱操作數(shù))連接起來的、符合語法規(guī)則的式子,稱為算術表達式。運算對象包括常量、變量、函數(shù)等。 例如: *.5a 是一個合法的表達式9語言規(guī)定了運算符的優(yōu)先級和結合性。 在表達式求值時,先按運算符的優(yōu)先級別高低次序執(zhí)行,例如先乘除后加減。 規(guī)定了各種運算符的結合方向(結合性) 算術運算符的結合方向為“自左至右”,即先左后右 。 3.8 算術運算符和算術表達式10 3.8 算術運算符和算術表達式(3)強制類型轉換運算符 可
5、以利用強制類型轉換運算符將一個表達式轉換成所需類型。 一般形式:(類型名)(表達式)例如:(double) 將轉換成double類型(int)(x+y) 將x+y的值轉換成整型(float)(5%3) 將5%3的值轉換成float型11例3.8 強制類型轉換。 #include void main() float ; int ; .; (); printf(x=%f, i=%dn,x,i); 說明:有兩種類型轉換,一種是在運算時不必用戶指定,系統(tǒng)自動進行的類型轉換,如3+6.5。第二種是強制類型轉換。當自動類型轉換不能實現(xiàn)目的時,可以用強制類型轉換。運行結果: x3.600000, i=312
6、 3.8 算術運算符和算術表達式(4) 自增、自減運算符 作用是使變量的值增或減如: ,(在使用之前,先使的值加(減),(在使用之后,使的值加(減) 13 3.8 算術運算符和算術表達式i+與+i的區(qū)別: 是先執(zhí)行后,再使用的值; 是先使用的值后,再執(zhí)行。例如: ; i的值先變成4, 再賦給,j的值均為 ; 先將 i的值3賦給,的值為,然后變?yōu)?4 3.8 算術運算符和算術表達式注意: (1)自增運算符(+),自減運算符(-),只能用于變量,而不能用于常量或表達式, (2)+和-的結合方向是“自右至左”。 自增(減)運算符常用于循環(huán)語句中使循環(huán)變量自動加。也用于指針變量,使指針指向下一個地址
7、15 3.8 算術運算符和算術表達式:在調用函數(shù)時,實參數(shù)的求值順序,標準并無統(tǒng)一規(guī)定。例如:的初值為,如果有下面的函數(shù)調用: printf(,i+) 在有的系中,從左至右求值,輸出“,”(VC)。在多數(shù)系統(tǒng)中對函數(shù)參數(shù)的求值順序是自右而左,函數(shù)輸出的是“,”(TC)。以上這種寫法不宜提倡, 最好改寫成 j = i+; printf(“%d,%d”,j,i);16 3.9 賦值運算符和賦值表達式 (1)賦值運算符 賦值符號“”就是賦值運算符,它的作用是將一個數(shù)據(jù)賦給一個變量。如“”的作用是執(zhí)行一次賦值操作(或稱賦值運算)。把常量賦給變量。也可以將一個表達式的值賦給一個變量. 17 3.9 賦值
8、運算符和賦值表達式 (2)類型轉換 如果賦值運算符兩側的類型不一致,但都是數(shù)值型或字符型時,在賦值時要進行類型轉換。將浮點型數(shù)據(jù)(包括單、雙精度)賦給整型變量時,舍棄浮點數(shù)的小數(shù)部分。如:為整型變量,執(zhí)行“i=3.56”的結果是使的值為,以整數(shù)形式存儲在整型變量中.18 3.9 賦值運算符和賦值表達式 將整型數(shù)據(jù)賦給單、雙精度變量時,數(shù)值不變,但以浮點數(shù)形式存儲到變量中 如: 將23賦給float變量,即執(zhí)行23,先將23轉換成2300000,再存儲在中。 19 3.9 賦值運算符和賦值表達式 將一個double型數(shù)據(jù)賦給float變量時,截取其前面7位有效數(shù)字,存放到float變量的存儲單元
9、(4個字節(jié))中。但應注意數(shù)值范圍不能溢出。 如:float f;double d=123.456789e100; f=d; 就出現(xiàn)溢出的錯誤。 如果將一個float型數(shù)據(jù)賦給double變量時,數(shù)值不變,有效位數(shù)擴展到16位,在內存中以8個字節(jié)存儲20 3.9 賦值運算符和賦值表達式 字符型數(shù)據(jù)賦給整型變量時,由于字符只占1個字節(jié),而整型變量為個字節(jié),因此將字符數(shù)據(jù)(個二進位)放到整型變量存儲單元的低位中。將帶符號的整型數(shù)據(jù)(int型)賦給long型變量時,要進行符號擴展,將整型數(shù)的16位送到long型低16位中:如果int型數(shù)據(jù)為正值(符號位為),則long型變量的高16位補;如果int型變
10、量為負值(符號位為),則long型變量的高16位補,以保持數(shù)值不改變。21 3.9 賦值運算符和賦值表達式 將一個int、short、long型數(shù)據(jù)賦給一個char型變量時,只將其低8位原封不動地送到char型變量(即截斷)。例如:int i=289;char c=a;c=i;c的值為33,如果用“%c”輸出c,將得到字符“!” !的ASCII碼為33。 賦值情況 :反之,若將一個long型數(shù)據(jù)賦給一個int型變量,只將long型數(shù)據(jù)中低16位原封不動地送到整型變量(即截斷)。22 3.9 賦值運算符和賦值表達式 例如:int a;long b;a=b 賦值情況如下 :如果65536(八進制數(shù)
11、0200000),則賦值后值為。23 3.9 賦值運算符和賦值表達式 (3) 復合的賦值運算符 在賦值符“”之前加上其他運算符,可以構成復合的運算符。例如: 等價于 * 等價于 *() 等價于 以“”為例來說明,它相當于使進行一次自加()的操作。即先使加,再賦給。24 3.9 賦值運算符和賦值表達式 為便于記憶,可以這樣理解: a += b (其中a為變量,b為表達式) a += b(將有下劃線的“a+”移到“=”右側) |_ a = a + b (在“=”左側補上變量名a) 25 3.9 賦值運算符和賦值表達式 注意:如果是包含若干項的表達式,則相當于它有 括號。如: x %= y+3 x
12、%= (y+3) |_ x = x %(y+3)(不要錯寫成x=x%y+3) 凡是二元(二目)運算符,都可以與賦值符一起組合成復合賦值符。 語言規(guī)定可以使用種復合賦值運算符:,*,| 26 3.9 賦值運算符和賦值表達式 (4) 賦值表達式 由賦值運算符將一個變量和一個表達式連接起來的式子稱為“賦值表達式”。一般形式為: 例如: “5”是一個賦值表達式 27 3.9 賦值運算符和賦值表達式 對賦值表達式求解的過程是: 求賦值運算符右側的“表達式”的值; 賦給賦值運算符左側的變量。例如: 賦值表達式“=3*5”的值為15,執(zhí)行表達式后,變量a的值也是15。 注意: 一個表達式應該有一個值 28
13、3.9 賦值運算符和賦值表達式 左值 (lvalue) : 賦值運算符左側的標識符變量可以作為左值;而表達式就不能作為左值(如a+b);常變量也不能作為左值, 右值 (lvalue) :出現(xiàn)在賦值運算符右側的表達式 左值也可以出現(xiàn)在賦值運算符右側,因而左值都可以作為右值。29 3.9 賦值運算符和賦值表達式 賦值表達式中的“表達式”,又可以是一個賦值表達式。例如: a=(b=5) 分析:括弧內的“b=5”是一個賦值表達式,它的值等于5。執(zhí)行表達式“a=(b=5)”相當于執(zhí)行“b=5”和“ab”兩個賦值表達式。 賦值運算符按照“自右而左”的結合順序,因此,“(b5)”外面的括弧可以不要,即“a=
14、(b=5)”和“a=b=5”等價。30 3.9 賦值運算符和賦值表達式 請分析下面的賦值表達式(a=3*5)=4*3分析:先執(zhí)行括弧內的運算,將15賦給a,然后執(zhí)行4*3的運算,得12,再把12賦給a。最后a的值為12,整個表達式的值為12??梢钥吹?a=3*5)出現(xiàn)在賦值運算符的左側,因此賦值表達式(a=3*5)是左值 注意:在對賦值表達式(a=3*5)求解后,變量a得到值15執(zhí)行(a=3*5)=4*3時,實際上是將4*3的積12賦給變量a,而不是賦給3*5。不能寫成:a=3*5=4*331 3.9 賦值運算符和賦值表達式 賦值表達式也可以包含復合的賦值運算符。 如:a+=a-=a*a分析:
15、此賦值表達式的求解步驟如下 先進行“*”的運算, 它相當于*,a的值為144132。再進行“”的運算,相當于=a+(-132),a的值為132-132-264。32 3.9 賦值運算符和賦值表達式 將賦值表達式作為表達式的一種,使賦值操作不僅可以出現(xiàn)在賦值語句中,而且可以以表達式形式出現(xiàn)在其他語句(如輸出語句、循環(huán)語句等)中。 如:printf(%d,a=b); 分析:如果b的值為3, 則輸出a的值(也是表達式a=b的值)為3。在一個語句中完成了賦值和輸出雙重功能。33 3.10 逗號運算符和逗號表達式逗號運算符:將兩個表達式連接起來,又稱為“順序求值運算符” 如:5, 一般形式: 表達式,表達式求解過程: 先求解表達式,再求解表達式。整個逗號表達式的值是表達式的值。 逗號表達式 的值為1434 3.10 逗號運算符和逗號表達式例:逗號表達式*5,* 分析:賦值運算符的優(yōu)先級別高于逗號運算符, 因此應先求解*5。的值為5,然后求解*,得。整個逗號表達式的值為。 一個逗號表達式又可以與另一個表達式組成一個新的逗號表達式 如:(*,*) 先計算出的值等于,再進行*的運算得60(但值未變,仍為15),再進行得,即整個表達式的值為。35 3.10 逗號運算符和逗號表達式逗號表達式的一般形式可以擴展為 表達式,表達式,表達式,表達式 它的值為表達式的值。逗號運算符是所有運算符中級別最低
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度智慧城市項目履約擔保期限與數(shù)據(jù)安全協(xié)議3篇
- 2025年度煤炭運輸合同書(附帶電子簽章功能)
- 二零二五年度高效訴訟離婚協(xié)議撰寫指南
- 2025消防應急救援物資采購及倉儲服務合同2篇
- 二零二五年度離婚協(xié)議書范本:女方離婚后住房安置協(xié)議
- 二零二五年度門衛(wèi)人員突發(fā)事件應急預案合同
- 二零二五年度高校師資力量引進與合作培訓合同
- 2025至2030年中國五金機械工具零部件數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年單頭高周波機架項目投資價值分析報告
- 二零二五年度融資租賃服務協(xié)議書2篇
- 護理人文知識培訓課件
- 建筑工程施工安全管理課件
- 2025年春新人教版數(shù)學七年級下冊教學課件 7.2.3 平行線的性質(第1課時)
- 安徽省合肥市2025年高三第一次教學質量檢測地理試題(含答案)
- 2025年新合同管理工作計劃
- 統(tǒng)編版八年級下冊語文第三單元名著導讀《經(jīng)典常談》閱讀指導 學案(含練習題及答案)
- 風光儲儲能項目PCS艙、電池艙吊裝方案
- 《志愿軍-存亡之戰(zhàn)》觀后感小學生
- 統(tǒng)編小學《道德與法治》三年級上下冊教材的解讀
- 人教版(2024)英語七年級上冊單詞表
- 產(chǎn)業(yè)鏈競爭關聯(lián)度
評論
0/150
提交評論