




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Chap 6 數(shù)據(jù)類型和表達(dá)式數(shù)據(jù)類型和表達(dá)式 6.1 數(shù)據(jù)的存儲(chǔ)和基本數(shù)據(jù)類型數(shù)據(jù)的存儲(chǔ)和基本數(shù)據(jù)類型 6.2 常量和變量常量和變量 6.3 數(shù)據(jù)的輸入和輸出數(shù)據(jù)的輸入和輸出6.4 類型轉(zhuǎn)換類型轉(zhuǎn)換6.5 表達(dá)式表達(dá)式1本章要點(diǎn)本章要點(diǎn)nC語(yǔ)言的基本數(shù)據(jù)類型有哪些?語(yǔ)言的基本數(shù)據(jù)類型有哪些?n各種基本數(shù)據(jù)類型的常量和變量是怎樣各種基本數(shù)據(jù)類型的常量和變量是怎樣定義的?定義的?nC語(yǔ)言有哪些表達(dá)式?語(yǔ)言有哪些表達(dá)式? n各種表達(dá)式的求解規(guī)則是什么?各種表達(dá)式的求解規(guī)則是什么?2數(shù)據(jù)類型和表達(dá)式數(shù)據(jù)類型和表達(dá)式n數(shù)據(jù)類型數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型n整型整型intn實(shí)型(浮點(diǎn)型)實(shí)型(浮點(diǎn)型
2、)float doublen字符型字符型char構(gòu)造數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉指針類型指針類型空類型空類型n運(yùn)算:對(duì)數(shù)據(jù)的操作運(yùn)算:對(duì)數(shù)據(jù)的操作運(yùn)算符數(shù)據(jù)運(yùn)算符數(shù)據(jù) 表達(dá)式表達(dá)式36.1 數(shù)數(shù)據(jù)的存儲(chǔ)和基本數(shù)據(jù)類型據(jù)的存儲(chǔ)和基本數(shù)據(jù)類型6.1.1 數(shù)據(jù)的存儲(chǔ)數(shù)據(jù)的存儲(chǔ)整型、實(shí)型、字符型數(shù)據(jù)的存儲(chǔ)整型、實(shí)型、字符型數(shù)據(jù)的存儲(chǔ)6.1.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型整型、實(shí)型、字符型整型、實(shí)型、字符型46.1.1 數(shù)據(jù)的存儲(chǔ)整型數(shù)據(jù)數(shù)據(jù)的存儲(chǔ)整型數(shù)據(jù)設(shè)整數(shù)在內(nèi)存中用設(shè)整數(shù)在內(nèi)存中用2個(gè)字節(jié)存儲(chǔ)個(gè)字節(jié)存儲(chǔ)1 000 0001 1000 00010 000 0001
3、1000 0001符號(hào)位符號(hào)位1:負(fù)數(shù):負(fù)數(shù)0:正數(shù):正數(shù)5數(shù)值的表示方法原碼數(shù)值的表示方法原碼 反碼反碼 補(bǔ)碼補(bǔ)碼n正數(shù)正數(shù)的原碼、反碼和補(bǔ)碼相同的原碼、反碼和補(bǔ)碼相同1 的補(bǔ)碼的補(bǔ)碼 0 000 0000 0000 000132767 的補(bǔ)碼的補(bǔ)碼 0 111 1111 1111 1111(215-1,2個(gè)字節(jié)的存儲(chǔ)單元能表示的最大正數(shù)個(gè)字節(jié)的存儲(chǔ)單元能表示的最大正數(shù))n負(fù)數(shù)負(fù)數(shù)的原碼、反碼和補(bǔ)碼不同的原碼、反碼和補(bǔ)碼不同 -1原碼原碼 1 000 0000 0000 0001 反碼反碼 1 111 1111 1111 1110 原碼取反原碼取反補(bǔ)碼補(bǔ)碼 1 111 1111 1111 1
4、111 反碼反碼16原碼原碼 反碼反碼 補(bǔ)碼補(bǔ)碼32767n補(bǔ)碼補(bǔ)碼 0 111 1111 1111 1111-32767n原碼原碼 1 111 1111 1111 1111n反碼反碼 1 000 0000 0000 0000 原碼取反原碼取反n補(bǔ)碼補(bǔ)碼 1 000 0000 0000 0001 反碼反碼1-32768 = -32767-1n補(bǔ)碼補(bǔ)碼 1 000 0000 0000 0000(2個(gè)字節(jié)的存儲(chǔ)單元能表示的最小負(fù)數(shù)個(gè)字節(jié)的存儲(chǔ)單元能表示的最小負(fù)數(shù))7 -32768 -1 0 1 32767 32767 0111 1111 1111 1111 1 0000 0000 0000 000
5、1 0 0000 0000 0000 0000 -1 1111 1111 1111 1111 -2 1111 1111 1111 1110 -32767 1000 0000 0000 0001 -32768 1000 0000 0000 000032767 + 1 = 32768 ?1000 0000 0000 000 = -32768-32768 - 1 = -32769 ?0111 1111 1111 1111 = 327678實(shí)型和字符型數(shù)據(jù)的存儲(chǔ)實(shí)型和字符型數(shù)據(jù)的存儲(chǔ)n實(shí)型數(shù)據(jù)的存儲(chǔ)實(shí)型數(shù)據(jù)的存儲(chǔ)-e+02符號(hào)位符號(hào)位 階碼階碼 尾數(shù)尾數(shù)n字符型數(shù)據(jù)的存儲(chǔ)字符型數(shù)據(jù)的存儲(chǔ)一個(gè)字節(jié)存儲(chǔ)一
6、個(gè)字節(jié)存儲(chǔ)ASCII碼碼95.1.2 基本基本數(shù)據(jù)類型數(shù)據(jù)類型n整型整型有符號(hào)整型有符號(hào)整型 無(wú)符號(hào)整型無(wú)符號(hào)整型 數(shù)據(jù)長(zhǎng)度數(shù)據(jù)長(zhǎng)度int unsigned int 16或或32位位short int unsigned short int 16位位long int unsigned long int 32位位n字符型字符型char 8位位n實(shí)型(浮點(diǎn)型)實(shí)型(浮點(diǎn)型)單精度浮點(diǎn)型單精度浮點(diǎn)型 float 32位位雙精度浮點(diǎn)型雙精度浮點(diǎn)型 double 64位位10基本基本數(shù)據(jù)類型數(shù)據(jù)類型整型整型擴(kuò)展的整數(shù)類型:擴(kuò)展的整數(shù)類型:short long unsigned int有符號(hào)整型有符號(hào)整型
7、無(wú)符號(hào)整型無(wú)符號(hào)整型 數(shù)據(jù)長(zhǎng)度數(shù)據(jù)長(zhǎng)度int unsigned int 16或或32位位short int unsigned short int 16位位long int unsigned long int 32位位有符號(hào)有符號(hào) short 1 000 0000 0000 0000 -32768 -2150 111 1111 1111 1111 32767 215-1無(wú)符號(hào)無(wú)符號(hào) unsigned short0000 0000 0000 0000 01111 1111 1111 1111 65535 216-111整數(shù)類型的取值范圍整數(shù)類型的取值范圍int 32位位 -2147483648 2
8、147483647 -231 231-1short int 16位位 -32768 32767 -215 215-1long int 32位位 -2147483648 2147483647 -231 231-1unsigned int 32位位 0 4294967295 0 232-1unsigned short int 16位位 0 65535 0 216-1unsigned long int 32位位 0 4294967295 0 232-112基本基本數(shù)據(jù)類型數(shù)據(jù)類型字符型字符型n字符具有數(shù)值特征字符具有數(shù)值特征A 65 0100 0001 n整型變量和字符變量的定義和賦值可以互整型變量
9、和字符變量的定義和賦值可以互換換 【 ASCII碼碼范圍】范圍】 char c; c = A; 或或 c = 65; int i; i = 65; 或或 i = A;13基本基本數(shù)據(jù)類型數(shù)據(jù)類型實(shí)型實(shí)型實(shí)型(浮點(diǎn)型)數(shù)據(jù)實(shí)型(浮點(diǎn)型)數(shù)據(jù)n單精度浮點(diǎn)型單精度浮點(diǎn)型 floatn雙精度浮點(diǎn)型雙精度浮點(diǎn)型 double 存儲(chǔ)存儲(chǔ) 數(shù)據(jù)精度數(shù)據(jù)精度 取值范圍取值范圍 (有效數(shù)字有效數(shù)字)float 4字節(jié)字節(jié) 七七/八八位位 (10-38 1038)double 8字節(jié)字節(jié) 十六十六位位 (10308 10308 )14數(shù)據(jù)精度和取值范圍數(shù)據(jù)精度和取值范圍n數(shù)據(jù)精度數(shù)據(jù)精度 與與 取值范圍取值范圍是
10、兩個(gè)不同的概念:是兩個(gè)不同的概念:float x = 1234567.89;雖在取值范圍內(nèi),但無(wú)法精確表達(dá)。雖在取值范圍內(nèi),但無(wú)法精確表達(dá)。 float y = 1.2e55;y 的精度要求不高,但超出取值范圍。的精度要求不高,但超出取值范圍。n并不是所有的實(shí)數(shù)都能在計(jì)算機(jī)中精確表示并不是所有的實(shí)數(shù)都能在計(jì)算機(jī)中精確表示n 實(shí)型常量的類型都是實(shí)型常量的類型都是double156.2.1 常量常量符號(hào)常量符號(hào)常量整型常量、實(shí)型常量、字符型常量整型常量、實(shí)型常量、字符型常量6.2.2 變量變量 變量的定義和使用變量的定義和使用 6.2 常量和變量常量和變量166.2.1 常量常量常量的類型通常由書
11、寫格式?jīng)Q定常量的類型通常由書寫格式?jīng)Q定123 (整型)整型)4.56 (實(shí)型實(shí)型) A (字符型字符型)符號(hào)常量符號(hào)常量:用一個(gè)標(biāo)識(shí)符代表一個(gè)常量:用一個(gè)標(biāo)識(shí)符代表一個(gè)常量 :PI :EPS17例例5-1 求球的表面積和體積求球的表面積和體積# include # define PI int main(void) double r, s, v; printf(“Enter r: ); scanf(%lf, &r); s = 4.0 * PI * r * r ; v = 4.0 / 3.0 * PI * r * r * r ; printf(s=%f, v=%fn, s, v); return
12、0;加分號(hào)加分號(hào)? ?通常用大寫字母通常用大寫字母18符號(hào)常量的優(yōu)點(diǎn)符號(hào)常量的優(yōu)點(diǎn)# include int main(void) double r, s, v; scanf(%lf, &r); *r*r* ; v =*r*r*r* ; . return 0;# include # define PI int main(void) double r, s, v; scanf(%lf, &r); *PI*r*r ; v = 4.0/3.0*PI*r*r*r ; . return 0;19整型常量(整數(shù))整型常量(整數(shù))n整數(shù)的表示整數(shù)的表示三種表現(xiàn)形式:三種表現(xiàn)形式:十進(jìn)制整數(shù):正、負(fù)號(hào),十進(jìn)制
13、整數(shù):正、負(fù)號(hào),09,首位不是,首位不是0例:例: 10,123八進(jìn)制整數(shù):正、負(fù)號(hào),八進(jìn)制整數(shù):正、負(fù)號(hào),07,首位是,首位是0例:例: 010,012316進(jìn)制整數(shù):正、負(fù)號(hào),進(jìn)制整數(shù):正、負(fù)號(hào),09,a-f,A-F,前,前綴是綴是0 x,0X例:例:0 x10,0 x12320整數(shù)的表示整數(shù)的表示123 = 01111011 (B) 二進(jìn)制二進(jìn)制 =173 (O) 八進(jìn)制八進(jìn)制 =7B (X) 十六進(jìn)制十六進(jìn)制123 0173 0 x7b16 020 0 x1010 012 0XA10 010 0 x10n不能超出整型數(shù)據(jù)的取值范圍不能超出整型數(shù)據(jù)的取值范圍n比長(zhǎng)整型數(shù)還要大的數(shù)只能用實(shí)
14、數(shù)來(lái)表示比長(zhǎng)整型數(shù)還要大的數(shù)只能用實(shí)數(shù)來(lái)表示21整數(shù)的類型整數(shù)的類型判斷整數(shù)的類型判斷整數(shù)的類型n整數(shù)后的字母后綴整數(shù)后的字母后綴123L long123U unsigned123LU unsigned longn整數(shù)的值整數(shù)的值22實(shí)型常量(實(shí)數(shù)、浮點(diǎn)數(shù))實(shí)型常量(實(shí)數(shù)、浮點(diǎn)數(shù))n實(shí)數(shù)的表示實(shí)數(shù)的表示浮點(diǎn)表示法浮點(diǎn)表示法0.123 123.4 12. .12科學(xué)計(jì)數(shù)法科學(xué)計(jì)數(shù)法6.026E-27 1.2e+30 1E-5n實(shí)數(shù)的類型實(shí)數(shù)的類型double23字符型常量字符型常量n字符常量字符常量a A 9 + $ nASCII字符集字符集列出所有可用的字符(列出所有可用的字符(256個(gè))個(gè))
15、每個(gè)字符:惟一的次序值(每個(gè)字符:惟一的次序值( ASCII 碼)碼)0-9 升序排列升序排列A-Za-z24字符的數(shù)值特征字符的數(shù)值特征字符字符ASCII 碼碼對(duì)字符進(jìn)行運(yùn)算對(duì)字符進(jìn)行運(yùn)算 對(duì)字符的對(duì)字符的ASCII 碼進(jìn)行運(yùn)算碼進(jìn)行運(yùn)算例如:例如:A 的的 ASCII 碼碼 65則:則:A+1=66,對(duì)應(yīng)字符對(duì)應(yīng)字符 B區(qū)分?jǐn)?shù)字字符和數(shù)字區(qū)分?jǐn)?shù)字字符和數(shù)字 1 125轉(zhuǎn)轉(zhuǎn)義義字字符符n反斜杠后跟一個(gè)字符或數(shù)字反斜杠后跟一個(gè)字符或數(shù)字n字符常量,代表字符常量,代表一個(gè)一個(gè)字符字符 n 101 x41 An所有字符都可以用轉(zhuǎn)義字符表示所有字符都可以用轉(zhuǎn)義字符表示266.2.2 變量變量在程序運(yùn)
16、行過(guò)程中,其值可以被改變的量。在程序運(yùn)行過(guò)程中,其值可以被改變的量。n變量必須先定義,后使用變量必須先定義,后使用n定義變量時(shí)要指定變量名和數(shù)據(jù)類型定義變量時(shí)要指定變量名和數(shù)據(jù)類型n變量應(yīng)該先賦值,后引用變量應(yīng)該先賦值,后引用27變量的定義變量的定義n變量名:合法的標(biāo)識(shí)符變量名:合法的標(biāo)識(shí)符小寫字母;見名知義小寫字母;見名知義n變量的類型:在定義時(shí)指定變量的類型:在定義時(shí)指定n變量定義的一般形式變量定義的一般形式類型名類型名 變量名表;變量名表;int celsius, fahr; float x;double area, length;變量名變量名代表內(nèi)存中的一個(gè)存儲(chǔ)單元,存放該變量的值代表
17、內(nèi)存中的一個(gè)存儲(chǔ)單元,存放該變量的值該存儲(chǔ)單元的大小由變量的該存儲(chǔ)單元的大小由變量的數(shù)據(jù)類型數(shù)據(jù)類型決定決定28變量的使用變量的使用n必須先必須先定義定義,后,后使用使用n應(yīng)該先賦值,后引用應(yīng)該先賦值,后引用n變量的賦值方法變量的賦值方法變量賦初值:在定義變量時(shí)對(duì)它賦值變量賦初值:在定義變量時(shí)對(duì)它賦值int a = 5, b = 3;賦值表達(dá)式賦值表達(dá)式int a, b;a = 5;b = 3;輸入輸入int a, b;scanf(%d%d, &a, &b);296.3.1 整型數(shù)據(jù)的輸入和輸出整型數(shù)據(jù)的輸入和輸出6.3.2 實(shí)型實(shí)型數(shù)據(jù)的輸入和輸出數(shù)據(jù)的輸入和輸出6.3.3 字符型字符型數(shù)據(jù)
18、的輸入和輸出數(shù)據(jù)的輸入和輸出 6.3 數(shù)數(shù)據(jù)的輸入和輸出據(jù)的輸入和輸出 30 整型數(shù)據(jù)的輸入輸出整型數(shù)據(jù)的輸入輸出printf (格式控制格式控制, 輸出參數(shù)輸出參數(shù)1, . , 輸出參數(shù)輸出參數(shù)n);scanf (格式控制格式控制, 輸入?yún)?shù)輸入?yún)?shù)1, . , 輸入?yún)?shù)輸入?yún)?shù)n);格式控制說(shuō)明格式控制說(shuō)明 % 十進(jìn)制十進(jìn)制 八進(jìn)制八進(jìn)制 十六進(jìn)制十六進(jìn)制int %d %o %xlong %ld %lo %lxunsigned %u %o %xunsigned long %lu %lo %lx31例例6-2(1) 輸出整型數(shù)據(jù)輸出整型數(shù)據(jù) # include int main(void)
19、printf(%d, %o, %xn, 10, 10, 10); printf(%d, %d, %dn, 10, 010, 0 x10); printf(%d, %xn, 012, 012); return 0; 00101010, 12, a10, 8, 1610, a32例例6-2(2) 輸入整型數(shù)據(jù)輸入整型數(shù)據(jù)# include int main(void) int a, b; printf(input a, b:); scanf(%o%d, &a, &b); printf(%d%5dn, a, b); printf(%x, %dn, a, b); return 0; input a,
20、b: 17 1715 17f, 17%x%d336.3.2 實(shí)型數(shù)據(jù)的輸入和輸出實(shí)型數(shù)據(jù)的輸入和輸出n輸入輸入 scanf()float:%f 或或%e 以小數(shù)或指數(shù)形式輸入一個(gè)單精度浮點(diǎn)數(shù)以小數(shù)或指數(shù)形式輸入一個(gè)單精度浮點(diǎn)數(shù)double: %lf或或%le 以小數(shù)或指數(shù)形式輸入一個(gè)以小數(shù)或指數(shù)形式輸入一個(gè)雙精度雙精度浮點(diǎn)數(shù)浮點(diǎn)數(shù)n輸出輸出 printf()float 和和double使用相同的格式控制說(shuō)明使用相同的格式控制說(shuō)明%f以小數(shù)形式輸出浮點(diǎn)數(shù),保留以小數(shù)形式輸出浮點(diǎn)數(shù),保留6位小數(shù)位小數(shù)%e以指數(shù)形式輸出以指數(shù)形式輸出34實(shí)型數(shù)據(jù)輸出示例實(shí)型數(shù)據(jù)輸出示例# include int m
21、ain(void) double d = 3.1415926; printf(%f, %en, d, d); printf(%5.3f, %5.2f, %.2fn, d, d, d); return 0; 3.141593, 3.14159e+00一共一共5位,小數(shù)位,小數(shù)3位,小數(shù)點(diǎn)一位位,小數(shù)點(diǎn)一位35實(shí)型數(shù)據(jù)輸入輸出示例實(shí)型數(shù)據(jù)輸入輸出示例假定假定float的精度為的精度為7位,位,double的精度為的精度為16位位 # include int main(void) float f; double d; printf(input f, d:); scanf(%f%lf, &f, &d)
22、; printf(f = %fn d = %f n, f, d); printf(d = %f n, d); return 0;input f, d: 366.3.3 字符型數(shù)據(jù)輸入輸出字符型數(shù)據(jù)輸入輸出nscanf() 和和 printf() %cchar ch;scanf(%c, &ch);printf(%c, ch);ngetchar() 和和 putchar()char ch;ch = getchar( );putchar(ch);輸入輸出一個(gè)字符輸入輸出一個(gè)字符37例6-3(1) 輸入輸出字符示例# include int main(void) char ch1, ch2; ch1=
23、getchar(); ch2=getchar(); putchar(ch1); putchar(#); putchar(ch2); return 0;AbA#b38例6-3(2) 輸入輸出字符示例# include int main(void) char ch1, ch2, ch3; scanf(%c%c%c, &ch1, &ch2, &ch3); printf(%c%c%c%c%c, ch1, #, ch2, #, ch3); return 0;AbCA#b#CA bCA# #b39例6-4 輸出字符型數(shù)據(jù)b的的ASCII碼碼98# include int main(void) char c
24、h = b; printf(%c, %dn, b, b); printf(%c, %dn, 98, 98); printf(%c, %dn, 97, b-1); printf(%c, %dn, ch - a + A, ch - a + A); return 0;0110 0010b98b98b, 98b, 98a, 97B, 6640# include int main( ) char ch; ch = b; printf(%c, %dn, ch, ch); return 0;0110 0010b9814262b9801420 x62 printfb %c putchar98 %d142 %o
25、62 %x scanfb %c getchar98 %d142 %o62 %xscanf(%c, &ch);41字符運(yùn)算字符運(yùn)算n大小寫英文字母轉(zhuǎn)換大小寫英文字母轉(zhuǎn)換 b - a = B - A z - a = Z - A m M a-AA-a0lm - a + A = MlM - A + a = ml8 - 0 = 8l8 + 0 = 8n數(shù)字字符和數(shù)字?jǐn)?shù)字字符和數(shù)字轉(zhuǎn)換轉(zhuǎn)換 9 - 0 = 9 - 0 9 = 9 + 08 842不同類型數(shù)據(jù)的混合運(yùn)算,先轉(zhuǎn)換為同一不同類型數(shù)據(jù)的混合運(yùn)算,先轉(zhuǎn)換為同一類型,再運(yùn)算。類型,再運(yùn)算。6.4.1 自動(dòng)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換非賦值運(yùn)算的類型轉(zhuǎn)換非賦值
26、運(yùn)算的類型轉(zhuǎn)換賦值運(yùn)算的類型轉(zhuǎn)換賦值運(yùn)算的類型轉(zhuǎn)換6.4.2 強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換6.4 類型轉(zhuǎn)換類型轉(zhuǎn)換436.4.1 自動(dòng)類型轉(zhuǎn)換(非賦值運(yùn)算)自動(dòng)類型轉(zhuǎn)換(非賦值運(yùn)算)n水平方向:自動(dòng)水平方向:自動(dòng)n垂直方向:低垂直方向:低 高高 高高 double float unsigned long long unsigned unsigned short 低低 int char, short44自動(dòng)類型轉(zhuǎn)換(非賦值運(yùn)算)自動(dòng)類型轉(zhuǎn)換(非賦值運(yùn)算)A + 12 10.05 65 77高高 double float unsigned long long unsigned unsigned sho
27、rt 低低 int char, short45自動(dòng)類型轉(zhuǎn)換(賦值運(yùn)算)自動(dòng)類型轉(zhuǎn)換(賦值運(yùn)算)變量變量 = 表達(dá)式表達(dá)式n計(jì)算賦值運(yùn)算符右側(cè)計(jì)算賦值運(yùn)算符右側(cè)表達(dá)式表達(dá)式的值的值n將賦值運(yùn)算符右側(cè)將賦值運(yùn)算符右側(cè)表達(dá)式表達(dá)式的值賦給左側(cè)的的值賦給左側(cè)的變量變量將賦值運(yùn)算符右側(cè)表達(dá)式的類型將賦值運(yùn)算符右側(cè)表達(dá)式的類型自動(dòng)轉(zhuǎn)換成自動(dòng)轉(zhuǎn)換成賦值號(hào)左側(cè)變量的類型賦值號(hào)左側(cè)變量的類型46自動(dòng)類型轉(zhuǎn)換(賦值運(yùn)算)自動(dòng)類型轉(zhuǎn)換(賦值運(yùn)算)double x;x = 1;x = ?short a = 1000;char b = A;long c;c = a + b;c = ?int ai;ai = 2.56;a
28、i = ?short bi;bi = 0 x12345678Lbi = ?475.4.2 強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(類型名類型名) 表達(dá)式表達(dá)式(double)3(double)(5/2)(double)5/2348強(qiáng)制類型轉(zhuǎn)換示例強(qiáng)制類型轉(zhuǎn)換示例# include int main(void) int i; double x; x = 3.8; i = (int) x; printf(x = %f, i = %d n, x, i); printf(double)(int)x = %fn, (double)(int)x); printf( x mod 3 =
29、 %dn, (int)x % 3); return 0;x = 3.800000, i = 3x mod 3 = 049表達(dá)式:由運(yùn)算符和運(yùn)算對(duì)象(操作數(shù))組表達(dá)式:由運(yùn)算符和運(yùn)算對(duì)象(操作數(shù))組成的有意義的運(yùn)算式子,它的值和類型由成的有意義的運(yùn)算式子,它的值和類型由參加運(yùn)算的運(yùn)算符和運(yùn)算對(duì)象決定。參加運(yùn)算的運(yùn)算符和運(yùn)算對(duì)象決定。運(yùn)算符:具有運(yùn)算功能的符號(hào)運(yùn)算符:具有運(yùn)算功能的符號(hào)運(yùn)算對(duì)象:常量、變量和函數(shù)等表達(dá)式運(yùn)算對(duì)象:常量、變量和函數(shù)等表達(dá)式算術(shù)表達(dá)式、賦值表達(dá)式、關(guān)系表達(dá)式、邏算術(shù)表達(dá)式、賦值表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、條件表達(dá)式和逗號(hào)表達(dá)式等輯表達(dá)式、條件表達(dá)式和逗號(hào)表達(dá)式等 6
30、.5 表達(dá)式表達(dá)式 506.5.1 算術(shù)表達(dá)式算術(shù)運(yùn)算符算術(shù)表達(dá)式算術(shù)運(yùn)算符n單目單目 + - + -n雙目雙目 + - * / %注意注意/ 整數(shù)除整數(shù),得整數(shù)整數(shù)除整數(shù),得整數(shù)1/4 = 0,10/3 = 3% 模模(求余求余): 針對(duì)整型數(shù)據(jù)針對(duì)整型數(shù)據(jù)5%6 = 5,9%4 = 1,100%4 = 0+ 和和 n單目運(yùn)算符,單目運(yùn)算符, +10 和和 10n雙目運(yùn)算符,雙目運(yùn)算符, x+10 和和 y 10 雙目運(yùn)算符兩側(cè)操作數(shù)的類型要相同,否則,自動(dòng)雙目運(yùn)算符兩側(cè)操作數(shù)的類型要相同,否則,自動(dòng)類型轉(zhuǎn)換后,再運(yùn)算。類型轉(zhuǎn)換后,再運(yùn)算。51自增運(yùn)算符自增運(yùn)算符+和自減運(yùn)算符和自減運(yùn)算符-
31、int n;n+ +n n- -n (只適合變量運(yùn)算)(只適合變量運(yùn)算)使變量的值增使變量的值增1或減或減1+n n+ n = n + 1-n n- n = n - 1取變量的值作為表達(dá)式的值取變量的值作為表達(dá)式的值+n:n = n + 1;取取n值作為表達(dá)式值作為表達(dá)式 +n 的值的值n+:取取n值作為表達(dá)式值作為表達(dá)式 n+ 的值;的值;n = n + 152自增運(yùn)算和自減運(yùn)算自增運(yùn)算和自減運(yùn)算int n, m;n=2;m=+n;n=2;m=n+;n=3n=3m=3m=2m=nm=n+1n=n+1m=n53算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性單目單目 + - + -雙目雙目
32、 * / %雙目雙目 + -高高低低從右向左從右向左-5 + 3%2 = (-5) + (3%2) = -43 * 5 % 3 = (3*5) % 3 = 0-i+ -(i+)54寫出寫出C表達(dá)式表達(dá)式數(shù)學(xué)式數(shù)學(xué)式 C算術(shù)表達(dá)式算術(shù)表達(dá)式s(s-a)(s-b)(s-c)(x+2)e2xaacbb242556.5.2 賦值賦值表達(dá)式表達(dá)式n賦值運(yùn)算符賦值運(yùn)算符 =x = 3*4優(yōu)先級(jí)較低,結(jié)合性從右向左優(yōu)先級(jí)較低,結(jié)合性從右向左x = y = 3 x = (y = 3)56賦值賦值表達(dá)式表達(dá)式變量變量 = 表達(dá)式表達(dá)式計(jì)算賦值運(yùn)算符右側(cè)計(jì)算賦值運(yùn)算符右側(cè)表達(dá)式表達(dá)式的值的值將賦值運(yùn)算符右側(cè)將賦值
33、運(yùn)算符右側(cè)表達(dá)式表達(dá)式的值賦給左側(cè)的的值賦給左側(cè)的變量變量將賦值運(yùn)算符左側(cè)的將賦值運(yùn)算符左側(cè)的變量變量的值作為表達(dá)式的值的值作為表達(dá)式的值右側(cè)表達(dá)式的類型自動(dòng)轉(zhuǎn)換成左側(cè)變量的類型右側(cè)表達(dá)式的類型自動(dòng)轉(zhuǎn)換成左側(cè)變量的類型int n; double x, y;n = 3.14 * 2;x = 10 / 4;x = (y = 3);57復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符n賦值運(yùn)算符賦值運(yùn)算符簡(jiǎn)單賦值運(yùn)算符簡(jiǎn)單賦值運(yùn)算符 =復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符n復(fù)合算術(shù)賦值運(yùn)算符復(fù)合算術(shù)賦值運(yùn)算符 += -= *= /= %=n復(fù)合位賦值運(yùn)算符復(fù)合位賦值運(yùn)算符n賦值表達(dá)式賦值表達(dá)式 變量變量 賦值運(yùn)算符賦值運(yùn)算符
34、表達(dá)式表達(dá)式x += exp 等價(jià)于等價(jià)于 x = x + expx *= y - 3x = x * (y-3) 586.5.3 關(guān)系表達(dá)式關(guān)系運(yùn)算符關(guān)系表達(dá)式關(guān)系運(yùn)算符n比較兩個(gè)操作數(shù),比較的結(jié)果:比較兩個(gè)操作數(shù),比較的結(jié)果:真真 假假x y x y x = y x != yn優(yōu)先級(jí)優(yōu)先級(jí) 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 = = != 賦值運(yùn)算符賦值運(yùn)算符n左結(jié)合左結(jié)合a b = cd = a bch a + 1 d = a + b c3 = x b)= cd = (a b)ch (a + 1)d = (a + b) c)(3 = x) b = cd = a bch a + 1d = a + b cb - 1 = a != c3 = x = 3 & x = a & ch = A & ch = 3 & 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025年中國(guó)手持云臺(tái)市場(chǎng)發(fā)展現(xiàn)狀調(diào)查及投資趨勢(shì)前景分析報(bào)告
- 高校超市可行性研究報(bào)告
- 2024-2025高中語(yǔ)文第七單元情系鄉(xiāng)土第11課玄黑結(jié)婚課后課時(shí)作業(yè)含解析新人教版選修中國(guó)小說(shuō)欣賞
- 2024-2025學(xué)年高中語(yǔ)文第三單元因聲求氣吟詠詩(shī)韻第15課蘇幕遮學(xué)案新人教版選修中國(guó)古代詩(shī)歌散文欣賞
- 2025年SPC項(xiàng)目風(fēng)險(xiǎn)可行性方案
- 2025年中國(guó)銀杏葉制劑未來(lái)發(fā)展趨勢(shì)分析及投資規(guī)劃建議研究報(bào)告
- 移動(dòng)通信綜合實(shí)訓(xùn)設(shè)備大型設(shè)備論證報(bào)告-浙江師范大學(xué)室
- 2025年中國(guó)硫酸軟骨素原料藥行業(yè)市場(chǎng)競(jìng)爭(zhēng)格局及投資前景展望報(bào)告
- 2025年醫(yī)用儀器項(xiàng)目可行性研究報(bào)告
- 2025年復(fù)塑水閘門密封件行業(yè)深度研究分析報(bào)告
- 新人教版三年級(jí)下冊(cè)《道德與法治》教案
- 2024年11月時(shí)事政治試題及答案
- 10我們愛和平(第1課時(shí))(說(shuō)課稿)2023-2024學(xué)年統(tǒng)編版道德與法治六年級(jí)下冊(cè)
- 烈士褒揚(yáng)課件教學(xué)課件
- 退休延期留用崗位協(xié)議書
- 3.1 歌曲《音階歌》課件(10張內(nèi)嵌音頻)
- 中醫(yī)適宜技術(shù)-中藥熱奄包
- 2024年儲(chǔ)能行業(yè)市場(chǎng)全景分析及發(fā)展趨勢(shì)展望報(bào)告
- 2024-2025學(xué)年小學(xué)科學(xué)五年級(jí)下冊(cè)青島版(六三制2024)教學(xué)設(shè)計(jì)合集
- 文言文雙文本閱讀:重耳出亡(附答案解析與譯文)
- DL∕T 664-2016 帶電設(shè)備紅外診斷應(yīng)用規(guī)范
評(píng)論
0/150
提交評(píng)論