ch2數(shù)據(jù)類(lèi)型上課ppt課件_第1頁(yè)
ch2數(shù)據(jù)類(lèi)型上課ppt課件_第2頁(yè)
ch2數(shù)據(jù)類(lèi)型上課ppt課件_第3頁(yè)
ch2數(shù)據(jù)類(lèi)型上課ppt課件_第4頁(yè)
ch2數(shù)據(jù)類(lèi)型上課ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第2章 數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式數(shù)據(jù)類(lèi)型常量與變量不同類(lèi)型數(shù)據(jù)間的轉(zhuǎn)換算術(shù)運(yùn)算符和算術(shù)表達(dá)式賦值運(yùn)算符和賦值表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式2.1 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型C數(shù)數(shù)據(jù)據(jù)類(lèi)類(lèi)型型指針類(lèi)型指針類(lèi)型空類(lèi)型空類(lèi)型void定義類(lèi)型定義類(lèi)型typedef構(gòu)造類(lèi)型構(gòu)造類(lèi)型枚舉類(lèi)型枚舉類(lèi)型enum數(shù)組數(shù)組構(gòu)造體構(gòu)造體struct共用體共用體union根本類(lèi)型根本類(lèi)型字符類(lèi)型字符類(lèi)型char整整 型型實(shí)型實(shí)型單精度型單精度型float雙精度型雙精度型double短整型短整型short長(zhǎng)整型長(zhǎng)整型long整型整型int數(shù)據(jù)類(lèi)型決議:數(shù)據(jù)類(lèi)型決議:1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù)數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2. 數(shù)據(jù)取值范圍數(shù)據(jù)取值范

2、圍3. 其上可進(jìn)展的操作其上可進(jìn)展的操作n根本數(shù)據(jù)類(lèi)型類(lèi)型符號(hào)關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型字符型實(shí)型有無(wú)(signed) int32-21474836482147483647(signed) short16-3276832767(signed) long32-2147483648214748364732unsigned int042949672953204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127無(wú)unsigned char8025

3、5闡明:數(shù)據(jù)類(lèi)型所占字節(jié)數(shù)隨機(jī)器硬件不同而不同,上表以IBM PC機(jī)為例2.2 常量與變量常量與變量n標(biāo)識(shí)符標(biāo)識(shí)符n定義:用來(lái)標(biāo)識(shí)變量、常量、函數(shù)等的字定義:用來(lái)標(biāo)識(shí)變量、常量、函數(shù)等的字符序列符序列n組成:組成:n只能由字母、數(shù)字、下劃線組成,且第一只能由字母、數(shù)字、下劃線組成,且第一個(gè)字母必需是字母或下劃線個(gè)字母必需是字母或下劃線n大小寫(xiě)敏感大小寫(xiě)敏感n不能運(yùn)用關(guān)鍵字不能運(yùn)用關(guān)鍵字 討論:判別以下標(biāo)識(shí)符號(hào)合法性討論:判別以下標(biāo)識(shí)符號(hào)合法性sumSumM.D.JohndayDate3days student_name#33lotus_1_2_3charababove $123 _toDayM

4、.D.John3days#33char$123abp長(zhǎng)度:最長(zhǎng)長(zhǎng)度:最長(zhǎng)32個(gè)字符個(gè)字符p命名原那么:命名原那么:p見(jiàn)名知意,采用簡(jiǎn)約有含義的英文單詞或縮見(jiàn)名知意,采用簡(jiǎn)約有含義的英文單詞或縮寫(xiě)寫(xiě)p不宜混淆不宜混淆 如如1與與L, o與與0 標(biāo)識(shí)符命名實(shí)例標(biāo)識(shí)符命名實(shí)例stu_name, sum, total, day, count, sortn常量常量n在程序運(yùn)轉(zhuǎn)過(guò)程中,其值不能改動(dòng)的量稱為常量在程序運(yùn)轉(zhuǎn)過(guò)程中,其值不能改動(dòng)的量稱為常量n常量可為恣意數(shù)據(jù)類(lèi)型常量可為恣意數(shù)據(jù)類(lèi)型n字面常量直接常量字面常量直接常量n整型:整型: 12、0、-3n實(shí)型:實(shí)型: 4.6、-1.23n字符型:字符型:

5、a、dn字符串常量:字符串常量:Hello、Good Morning!p符號(hào)常量:標(biāo)識(shí)符代表常量符號(hào)常量:標(biāo)識(shí)符代表常量p定義格式:定義格式: #define 符號(hào)常量定義舉例符號(hào)常量定義舉例#define PI 3.1415926#define STAR *闡明闡明:符號(hào)常量符號(hào)常量普通運(yùn)用大寫(xiě)英普通運(yùn)用大寫(xiě)英文字母表示,以文字母表示,以區(qū)別普通用于小區(qū)別普通用于小寫(xiě)字母表示的變寫(xiě)字母表示的變量。量。p符號(hào)常量運(yùn)用符號(hào)常量運(yùn)用例例 符號(hào)常量舉例符號(hào)常量舉例#include #define PRICE 30void main() int num,total; num=10; total=num

6、*PRICE; printf(total=%d,total);運(yùn)轉(zhuǎn)結(jié)果:運(yùn)轉(zhuǎn)結(jié)果:total=300符號(hào)常量的運(yùn)用能給符號(hào)常量的運(yùn)用能給程序員帶來(lái)哪些益處?程序員帶來(lái)哪些益處?n變量變量n其值可以改動(dòng)的量稱為變量其值可以改動(dòng)的量稱為變量n變量也可以為恣意數(shù)據(jù)類(lèi)型變量也可以為恣意數(shù)據(jù)類(lèi)型n變量定義的普通格式變量定義的普通格式n數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 變量變量1,變量,變量2,變量,變量n;決議分配字節(jié)數(shù)決議分配字節(jié)數(shù)和數(shù)的表示范圍和數(shù)的表示范圍變量定義舉例變量定義舉例: int a,b,c; float data;p變量的運(yùn)用:作強(qiáng)迫定義,也就是變量的運(yùn)用:作強(qiáng)迫定義,也就是“先定義,先定義,后運(yùn)用后

7、運(yùn)用例例1 int student; stadent=19; /Undefined symbol stadent in function main 例例2 float a,b,c; c=a%b; /Illegal use of floating point in function main n整型數(shù)據(jù)整型數(shù)據(jù)n整型常量整型常量形式形式表示方式表示方式舉例舉例十進(jìn)制整數(shù)十進(jìn)制整數(shù)由數(shù)字由數(shù)字0-9和正負(fù)號(hào)表示和正負(fù)號(hào)表示123,-456,0八進(jìn)制整數(shù)八進(jìn)制整數(shù)由數(shù)字由數(shù)字0開(kāi)頭開(kāi)頭,后跟數(shù)字后跟數(shù)字07表示表示0123,011十六進(jìn)制整數(shù)十六進(jìn)制整數(shù)由由0 x開(kāi)頭開(kāi)頭,后跟后跟09,af,AF表

8、示表示0 x123,0Xff問(wèn)題:?jiǎn)栴}:0123 = ( )100 x123 = ( )100Xff = ( )10 83291255整型常量的類(lèi)型整型常量的類(lèi)型根據(jù)其值所在范圍確定其數(shù)據(jù)類(lèi)型根據(jù)其值所在范圍確定其數(shù)據(jù)類(lèi)型在整常量后加字母在整常量后加字母l l或或L L,以為它是,以為它是long int long int 型型常量常量例例 12 與與 12L例例30000 為為int型型65536 為為long int型型p整型變量整型變量p整型變量在內(nèi)存中以二進(jìn)制的方式存放整型變量在內(nèi)存中以二進(jìn)制的方式存放p根據(jù)占用的字節(jié)數(shù)不同,分為不同類(lèi)別根據(jù)占用的字節(jié)數(shù)不同,分為不同類(lèi)別整型變量的定義

9、整型變量的定義整型變量定義舉例整型變量定義舉例: int a,b; unsigned short c,d; long e, f;#include void main() int a,b,c,d; unsigned u; a=12; b=-24; u=10; c=a+u; d=b+u; printf(“a+u = %d, b+u = %dn,c, d); 運(yùn)轉(zhuǎn)結(jié)果:運(yùn)轉(zhuǎn)結(jié)果:a+u = 22, b+u = -14n實(shí)型數(shù)據(jù)實(shí)型數(shù)據(jù)n實(shí)型常量實(shí)型常量n表示方式:表示方式:n 十進(jìn)制數(shù)方式:必需有小數(shù)點(diǎn)十進(jìn)制數(shù)方式:必需有小數(shù)點(diǎn)n 指數(shù)方式:指數(shù)方式:e e或或E E之前必需有數(shù)字;指之前必需有數(shù)字

10、;指數(shù)必需為整數(shù)數(shù)必需為整數(shù)n實(shí)型常量的整數(shù)部分為時(shí)可以省略,且實(shí)型常量的整數(shù)部分為時(shí)可以省略,且E E或或e e后面指數(shù)必需為整數(shù)。后面指數(shù)必需為整數(shù)。十進(jìn)制數(shù)方式實(shí)型常量0.123, .123, 123.0, 0.0, 123.指數(shù)方式實(shí)型常量12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 , .e3n字符常量字符常量n定義:用單引號(hào)括起來(lái)的單個(gè)普通字符或定義:用單引號(hào)括起來(lái)的單個(gè)普通字符或本義字符。本義字符。n字符常量的值:該字符的字符常量的值:該字符的ASCIIASCII碼值碼值n本義字符:反斜線后面跟一個(gè)字符或一個(gè)本義字符:反斜線后面跟一個(gè)字符或一個(gè)代碼

11、值表示代碼值表示如 a A ? n 101如 A65, a97, 048 , n10本義字符及其含義:本義字符含義nvradddtbf“xhh本義字符含義換行垂直制表回車(chē)響鈴單引號(hào)單引號(hào)3位位8進(jìn)制數(shù)代表的字符進(jìn)制數(shù)代表的字符程度制表退格換頁(yè)換頁(yè)反斜線反斜線雙引號(hào)雙引號(hào)2位位16進(jìn)制數(shù)代表的字符進(jìn)制數(shù)代表的字符如 101 -A 012 -n 376 - x61 -a 60 -0 483 -()例:A-101-x41-65例例 本義字符舉例本義字符舉例 #include ;void main() printf(101 x42 Cn); printf(I say:How are you?n); p

12、rintf(C Programn); printf(Turbo C);A B CI say:How are you? C ProgramTurbo Cp本卷須知:本卷須知:p單撇號(hào)中的字符不能是單撇號(hào)中的字符不能是或者或者 p一個(gè)字符占一個(gè)字節(jié),存其對(duì)應(yīng)的一個(gè)字符占一個(gè)字節(jié),存其對(duì)應(yīng)的ASCIIASCII碼碼p思索:思索:99和和9 9的區(qū)別的區(qū)別p字符型數(shù)據(jù)可像證書(shū)一樣在程序中參與字符型數(shù)據(jù)可像證書(shū)一樣在程序中參與相關(guān)的運(yùn)算相關(guān)的運(yùn)算a 32 結(jié)果為結(jié)果為65n字符變量字符變量n字符變量存放字符字符變量存放字符ASCIIASCII碼碼ncharchar與與intint數(shù)據(jù)間可進(jìn)展算術(shù)運(yùn)算數(shù)據(jù)

13、間可進(jìn)展算術(shù)運(yùn)算例例1 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */例例2 main() char c1, c2; c1=97; c2=98; printf(“%c %d, c1, c2);/*ch2_003.c*/ #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn,total,ch1); 宏定義宏定義變量定義變量定義輸出結(jié)果輸出結(jié)果

14、運(yùn)轉(zhuǎn)結(jié)果:運(yùn)轉(zhuǎn)結(jié)果:total=37.500000, ch1=d例子例子n字符串常量字符串常量n定義:用雙引號(hào)定義:用雙引號(hào)(“(“) )括起來(lái)的字符序列括起來(lái)的字符序列n存儲(chǔ):每個(gè)字符串尾自動(dòng)加一個(gè)存儲(chǔ):每個(gè)字符串尾自動(dòng)加一個(gè) 0 0 作為字符串終了標(biāo)志作為字符串終了標(biāo)志n字符常量與字符串常量不同字符常量與字符串常量不同h e l l o 0例例 字符串字符串“hellohello在內(nèi)存中在內(nèi)存中例例 空串空串 “ “0a a 0例例 aaa例例: char ch; ch=A; 例例: char ch; ch=A; 沒(méi)有字符串變量,用字符數(shù)組存放沒(méi)有字符串變量,用字符數(shù)組存放5C言語(yǔ)無(wú)言語(yǔ)無(wú)

15、I/O語(yǔ)句,語(yǔ)句,I/O操作由函數(shù)實(shí)現(xiàn)操作由函數(shù)實(shí)現(xiàn)5 #include 格式輸入輸出函數(shù) p規(guī)范輸入函數(shù)規(guī)范輸入函數(shù)scanf格式格式: scanf(“格式控制串格式控制串,地址表,地址表功能:按指定格式從鍵盤(pán)讀入數(shù)據(jù),存入地址表指定的功能:按指定格式從鍵盤(pán)讀入數(shù)據(jù),存入地址表指定的 存儲(chǔ)單元中存儲(chǔ)單元中,并按回車(chē)鍵終了并按回車(chē)鍵終了返值:正常,前往輸入數(shù)據(jù)個(gè)數(shù)返值:正常,前往輸入數(shù)據(jù)個(gè)數(shù)地址表:變量的地址,常用取地址運(yùn)算符地址表:變量的地址,常用取地址運(yùn)算符&格式字符格式字符:d,i,o,x,u,c,s,f,e例例 scanf(“%d,&a); 輸入:輸入:10 那么那么

16、a=10例例 scanf(“%x,&a); 輸入:輸入:11 那么那么 a=17附加格式闡明符修飾符附加格式闡明符修飾符例例 scanf(“%4d%2d%2d,&yy,&mm,&dd); 輸入輸入 20191015 那么那么2019yy, 10 mm, 15 dd例例 scanf(“%3d%*4d%f,&k,&f); 輸入輸入 12345678765.43 那么那么123k, 8765.43f例例 scanf(“%2d %*3d %2d,&a,&b); 輸入輸入 12 345 67 那么那么12a, 67b例例 scanf(“%3

17、c%2c,&c1,&c2); 輸入輸入 abcde 那么那么ac1, d c2l修飾符修飾符功功 能能hm*用于用于d,o,xd,o,x前,指定輸入為前,指定輸入為shortshort型整數(shù)型整數(shù)用于用于d,o,xd,o,x前,指定輸入為前,指定輸入為longlong型整數(shù)型整數(shù)用于用于e,fe,f前,指定輸入為前,指定輸入為doubledouble型實(shí)數(shù)型實(shí)數(shù)指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符那么終了指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符那么終了抑制符,指定輸入項(xiàng)讀入后不賦給變量抑制符,指定輸入項(xiàng)讀入后不賦給變量輸入分隔符的指定輸入分隔符的指定普通以空格、普通以空格、TA

18、BTAB或回車(chē)鍵作為分隔符或回車(chē)鍵作為分隔符其它字符做分隔符:格式串中兩個(gè)格式符間字符其它字符做分隔符:格式串中兩個(gè)格式符間字符例 scanf(“%d%o%x,&a,&b,&c); printf(“a=%d,b=%d,c=%dn,a,b,c); 輸入 123 123 123 輸出 a=123,b=83,c=291例 scanf(“%d:%d:%d,&h,&m,&s); 輸入 12:30:45 那么12 h, 30 m, 45 s例 scanf(“%d,%d,&a,&b) 輸入 3,4 那么3a, 4 b例 scanf(“a=%d,

19、b=%d,c=%d,&a,&b,&c); 輸入 a=12,b=24,c=36 2.3 2.3 不同類(lèi)型數(shù)據(jù)間的轉(zhuǎn)換不同類(lèi)型數(shù)據(jù)間的轉(zhuǎn)換n隱式轉(zhuǎn)換隱式轉(zhuǎn)換n什么情況下發(fā)生什么情況下發(fā)生n運(yùn)算轉(zhuǎn)換運(yùn)算轉(zhuǎn)換-不同類(lèi)型數(shù)據(jù)混合運(yùn)算時(shí)不同類(lèi)型數(shù)據(jù)混合運(yùn)算時(shí)n賦值轉(zhuǎn)換賦值轉(zhuǎn)換-把一個(gè)值賦給與其類(lèi)型不同把一個(gè)值賦給與其類(lèi)型不同的變量時(shí)的變量時(shí)n輸出轉(zhuǎn)換輸出轉(zhuǎn)換-輸出時(shí)轉(zhuǎn)換成指定的輸出格輸出時(shí)轉(zhuǎn)換成指定的輸出格式式n函數(shù)調(diào)用轉(zhuǎn)換函數(shù)調(diào)用轉(zhuǎn)換-實(shí)參與形參類(lèi)型不一致實(shí)參與形參類(lèi)型不一致時(shí)轉(zhuǎn)換時(shí)轉(zhuǎn)換a 32 int age;age = 11.1char name=a;printf(“%dn,

20、name);p運(yùn)算轉(zhuǎn)換規(guī)那么運(yùn)算轉(zhuǎn)換規(guī)那么: :不同類(lèi)型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)不同類(lèi)型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)轉(zhuǎn)換成同一類(lèi)型轉(zhuǎn)換成同一類(lèi)型doublefloatlongunsignedintchar,short低低高高闡明闡明:必定的轉(zhuǎn)換必定的轉(zhuǎn)換運(yùn)算對(duì)象類(lèi)型不同時(shí)轉(zhuǎn)換運(yùn)算對(duì)象類(lèi)型不同時(shí)轉(zhuǎn)換 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoublefloatdoubledoubledouble例例1intintdoubledoubledoubledoubledoubledouble10+a +i*f - d/l例例2 int

21、 i;float f;double d;long l;n顯示轉(zhuǎn)換顯示轉(zhuǎn)換n可以利用強(qiáng)迫類(lèi)型轉(zhuǎn)換將一個(gè)表達(dá)式轉(zhuǎn)可以利用強(qiáng)迫類(lèi)型轉(zhuǎn)換將一個(gè)表達(dá)式轉(zhuǎn)換成所需類(lèi)型換成所需類(lèi)型n普通方式:類(lèi)型名表達(dá)式普通方式:類(lèi)型名表達(dá)式n例例: (int)(x+y): (int)(x+y)n (int)x+y (int)x+yn (double)(3)/2 (double)(3)/2 n(int)3.6 (int)3.6 n闡明:強(qiáng)迫轉(zhuǎn)換得到所需類(lèi)型的中間變量,闡明:強(qiáng)迫轉(zhuǎn)換得到所需類(lèi)型的中間變量,原變量類(lèi)型不變?cè)兞款?lèi)型不變 例例 main() float x; int i; x=3.6; i=(int)x; pr

22、intf(“x=%f,i=%d,x,i); 結(jié)果:結(jié)果:x=3.600000,i=3較高類(lèi)型向較低類(lèi)型轉(zhuǎn)換時(shí)能夠發(fā)生精度損失問(wèn)題2.4 2.4 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式nC運(yùn)算符簡(jiǎn)介運(yùn)算符簡(jiǎn)介C運(yùn)運(yùn)算算符符算術(shù)運(yùn)算符算術(shù)運(yùn)算符 :+ - + - * * / % + - / % + -關(guān)系運(yùn)算符關(guān)系運(yùn)算符 : = != = !=邏輯運(yùn)算符邏輯運(yùn)算符 :?。海?& |& |位位 運(yùn)運(yùn) 算算 符:符: | & | &賦值運(yùn)算符賦值運(yùn)算符 := = 及其擴(kuò)展及其擴(kuò)展條件運(yùn)算符條件運(yùn)算符 :?:?:逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符 :, ,指針運(yùn)算符指針運(yùn)算符 :

23、* * & &求求 字字 節(jié)節(jié) 數(shù):數(shù):sizeofsizeof強(qiáng)迫類(lèi)型轉(zhuǎn)換:類(lèi)型強(qiáng)迫類(lèi)型轉(zhuǎn)換:類(lèi)型分量運(yùn)算符分量運(yùn)算符 :. -. -下標(biāo)運(yùn)算符下標(biāo)運(yùn)算符 :其它其它 :( ) -( ) -學(xué)習(xí)運(yùn)算符應(yīng)留意學(xué)習(xí)運(yùn)算符應(yīng)留意 運(yùn)算符功能運(yùn)算符功能 與運(yùn)算量關(guān)系與運(yùn)算量關(guān)系 要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量個(gè)數(shù) 要求運(yùn)算量類(lèi)型要求運(yùn)算量類(lèi)型 運(yùn)算符優(yōu)先級(jí)別運(yùn)算符優(yōu)先級(jí)別 結(jié)合方向結(jié)合方向 結(jié)果的類(lèi)型結(jié)果的類(lèi)型n根本的算術(shù)運(yùn)算符根本的算術(shù)運(yùn)算符n+加法運(yùn)算或正值運(yùn)算符加法運(yùn)算或正值運(yùn)算符n-減法運(yùn)算或負(fù)值運(yùn)算符減法運(yùn)算或負(fù)值運(yùn)算符n*乘法運(yùn)算符乘法運(yùn)算符n/除法運(yùn)算符,求商除法運(yùn)算符,求商

24、,兩個(gè)整數(shù)相除結(jié)果為兩個(gè)整數(shù)相除結(jié)果為整數(shù)整數(shù)n% 模運(yùn)算符,求余,要求兩那么均為整型模運(yùn)算符,求余,要求兩那么均為整型數(shù)據(jù)數(shù)據(jù)3+5、+35-2、-33*55/37%4例 5/2 = -5/2.0 =例 5%2 = -5%2 = 5%-2 = 1%10 = 5%1 = 5.5%22-2.51-110()1取模的余數(shù)符號(hào)取模的余數(shù)符號(hào)由分子被除數(shù)由分子被除數(shù)決議決議n算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)和結(jié)合性算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)和結(jié)合性n算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象銜接起來(lái)的、符合對(duì)象銜接起來(lái)的、符合C C語(yǔ)法規(guī)那么的式語(yǔ)法規(guī)那么的式子。子。n求表

25、達(dá)式的值:求表達(dá)式的值:n先按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)行;先按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)行;n再一個(gè)運(yùn)算對(duì)象兩那么的運(yùn)算賦的優(yōu)先級(jí)再一個(gè)運(yùn)算對(duì)象兩那么的運(yùn)算賦的優(yōu)先級(jí)別一樣,那么按規(guī)定的別一樣,那么按規(guī)定的“結(jié)合方向結(jié)合方向處置。處置。a*b/c-1.5+aa b * c / dn自增自增+、自減運(yùn)算符、自減運(yùn)算符n作用:使變量值加作用:使變量值加1或減或減1n種類(lèi):種類(lèi):n前置前置 +i, -i (先執(zhí)行先執(zhí)行i+1或或i-1,再運(yùn)用,再運(yùn)用i值值)n后置后置 i+,i- (先運(yùn)用先運(yùn)用i值值,再執(zhí)行再執(zhí)行i+1或或i-1 int a=3; int b=+a; int c=a+;4a a值

26、值表達(dá)式值表達(dá)式值a a值值表達(dá)式值表達(dá)式值+a+aa+a+345444那么:那么:a:5,b:4,c:4。 j=3; k=+j; j=3; k=j+; j=3; printf(“%d,+j); j=3; printf(“%d,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b; /k=4,j=4/k=4,j=4/k=3,j=4/k=3,j=4/4/4/3/3/c=20,a=4/c=20,a=4/c=15,a=4/c=15,a=4例例p留意闡明:留意闡明:p只能用于變量,不能用于常量或表達(dá)式;只能用于變量,不能用于常量或表達(dá)式;p結(jié)合方向結(jié)合方向“自右向左自右向左;

27、p優(yōu)先級(jí)別:優(yōu)先級(jí)別: - - + - - - - + - - * * / % / % - + - + -p自增減運(yùn)算常用于循環(huán)語(yǔ)句中循環(huán)變量自自增減運(yùn)算常用于循環(huán)語(yǔ)句中循環(huán)變量自動(dòng)加減動(dòng)加減1 1或指針變量,使指針指向下一個(gè)或指針變量,使指針指向下一個(gè)地址地址5+ () (a+b)+ ()i+ ()例例1 1解答:解答: -i+ -i+ -(i+) -(i+) i=3; printf(“%d i=3; printf(“%d,-i+); /-3 ,-i+); /-3 例例1: -i+ i=3; printf(“%d,-i+); 例例2: j+k; (j+)+k;n有關(guān)表達(dá)式運(yùn)用中的問(wèn)題闡明有關(guān)

28、表達(dá)式運(yùn)用中的問(wèn)題闡明n表達(dá)式中包含多個(gè)自加、自減運(yùn)算時(shí),很表達(dá)式中包含多個(gè)自加、自減運(yùn)算時(shí),很容易出錯(cuò)容易出錯(cuò)例例1 1: 如如i i3 3,那么,那么k ki i結(jié)果:結(jié)果:k3,i4例例2 2: 如如i i3 3,那么,那么(i+) + (i+) (i+) + (i+) + (i+)+ (i+)結(jié)果:結(jié)果:9,i6例例3 3: 如如i i3 3,那么,那么(+ i) + (+ i) (+ i) + (+ i) + (+ i)+ (+ i)結(jié)果:結(jié)果:16,i6pi+ji+j,應(yīng)如何結(jié)合?,應(yīng)如何結(jié)合?p調(diào)用函數(shù)時(shí),實(shí)參數(shù)地求值順序,調(diào)用函數(shù)時(shí),實(shí)參數(shù)地求值順序,c c并無(wú)一致并無(wú)一致規(guī)定

29、規(guī)定C C編譯在處置時(shí)盡能夠多地自左而右將假設(shè)編譯在處置時(shí)盡能夠多地自左而右將假設(shè)干個(gè)字符組成一個(gè)運(yùn)算符。所以應(yīng)該為干個(gè)字符組成一個(gè)運(yùn)算符。所以應(yīng)該為(i+)+j(i+)+j舉例:如舉例:如i i3 3,那么,那么printf(“%d,%dprintf(“%d,%d,i,i+),i,i+)解答:解答:假設(shè)對(duì)參數(shù)的求值順序?yàn)樽杂叶?,打印假設(shè)對(duì)參數(shù)的求值順序?yàn)樽杂叶?,打?,3 4,3 且且 i=4;i=4;假設(shè)對(duì)參數(shù)的求值順序?yàn)樽宰蠖?,打印假設(shè)對(duì)參數(shù)的求值順序?yàn)樽宰蠖?,打?,3 3,3 且且 i=4;i=4;2.5 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式n簡(jiǎn)單賦值運(yùn)算符簡(jiǎn)單賦值運(yùn)

30、算符“n作用:將一個(gè)數(shù)據(jù)賦給一個(gè)變量作用:將一個(gè)數(shù)據(jù)賦給一個(gè)變量常量或表達(dá)式常量或表達(dá)式只能是變量,不能是只能是變量,不能是常量或表達(dá)式常量或表達(dá)式例例 3=x-2*y;a+b=3;例例 a3; a(a+b)*c賦值轉(zhuǎn)換規(guī)那么:使賦值號(hào)右邊表達(dá)式值自動(dòng)轉(zhuǎn)換成其左邊變量的類(lèi)型例例1 float f; int i; i=10; f=i; 那么那么 f=10.0例例2 int i; i=2.56; /結(jié)果結(jié)果i=2;n賦值表達(dá)式賦值表達(dá)式n定義:由賦值運(yùn)算符將一個(gè)變量和一個(gè)表定義:由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式銜接起來(lái)的式子,叫賦值表達(dá)式。達(dá)式銜接起來(lái)的式子,叫賦值表達(dá)式。n普通方式:普通方式:

31、 n賦值表達(dá)式的值與變量值相等賦值表達(dá)式的值與變量值相等, ,且可嵌套且可嵌套p結(jié)合方向:自右向左結(jié)合方向:自右向左p優(yōu)先級(jí)優(yōu)先級(jí): 14例例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2)/表達(dá)式值為表達(dá)式值為5,a,b,c值為值為5/ b=5;a=5/表達(dá)式值表達(dá)式值11,c=6,a=11/表達(dá)式值表達(dá)式值10,a=10,b=4,c=6/表達(dá)式值表達(dá)式值5,a=5,b=10,c=2n復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符n+= -= *= /= %= = &= = |=a+=3a=a+3x*=y+8x=x*(y+8)x%=3

32、x=x%3例例: a=12; a+=a-=a*a/a=-264 等價(jià)于等價(jià)于a=a+(a=a-(a*a)例例: int a=2; a%=4-1; a+=a*=a-=a*=3; /a=0 等價(jià)于等價(jià)于a=a+(a=a*(a=a-(a=a*3)#include void main() i=8;j=10; int i,j,m=0,n=0;m+=i+;n-=-j;printf(i=%d,j=%d,m=%d,n=%dn,i,j,m,n);分析程序結(jié)果分析程序結(jié)果:m=+i;n=j+;printf(%d,%d,%d,%dn,i,j,m,n);int i,j;2.6 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式n方式:表達(dá)式方式

33、:表達(dá)式1,1,表達(dá)式表達(dá)式2,2,表達(dá)式表達(dá)式n nn結(jié)合性結(jié)合性: :從左向右從左向右n優(yōu)先級(jí)優(yōu)先級(jí): 15: 15n逗號(hào)表達(dá)式的值:等于表達(dá)式逗號(hào)表達(dá)式的值:等于表達(dá)式n n的值的值例例1 a=3*5,a*4 a=3*5,a*4,a+5例例2 x=(a=3,6*3) x=a=3,6*a例例3 a=1;b=2;c=3; printf(“%d,%d,%d,a,b,c); printf(“%d,%d,%d,(a,b,c),b,c); 例例4 printf(“%d,%d,%d,a,b,c) ; printf(“%d,%d,%d,(a,b,c),b,c)/a=15,表達(dá)式值表達(dá)式值60/a=15,表達(dá)式值表達(dá)式值20/賦值表達(dá)式,表達(dá)式值賦值表達(dá)式,表達(dá)式值18,x=18/逗號(hào)表達(dá)式逗號(hào)表達(dá)式,表達(dá)式值表達(dá)式值18,x=3/1,2,3/3,2,3/其中逗號(hào)起分隔作用其中逗號(hào)起分隔作用/其中逗號(hào)為逗號(hào)運(yùn)算符其中逗號(hào)為逗號(hào)運(yùn)算符例例:#include void main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(x=%dn,x)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論