第2章 C語言的基本數(shù)據(jù)類型與表達(dá)式_第1頁
第2章 C語言的基本數(shù)據(jù)類型與表達(dá)式_第2頁
第2章 C語言的基本數(shù)據(jù)類型與表達(dá)式_第3頁
第2章 C語言的基本數(shù)據(jù)類型與表達(dá)式_第4頁
第2章 C語言的基本數(shù)據(jù)類型與表達(dá)式_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第 2 2 章章 C C語言的基本數(shù)據(jù)類型語言的基本數(shù)據(jù)類型與表達(dá)式與表達(dá)式 2.1 C2.1 C語言的基本數(shù)據(jù)類型語言的基本數(shù)據(jù)類型 2.2 2.2 常量與變量常量與變量 2.3 2.3 運算符與表達(dá)式運算符與表達(dá)式 2.4 2.4 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁教學(xué)目的和基本要求:教學(xué)目的和基本要求:要求學(xué)生清楚數(shù)據(jù)類型與變量、常量的關(guān)系,掌握各種常量的性質(zhì)和定義,掌握表達(dá)式中各種運算符的功能和特點,明白產(chǎn)生副作用的原因,了解數(shù)據(jù)類型的相互轉(zhuǎn)換規(guī)則。 教學(xué)重點:教學(xué)重點:數(shù)據(jù)類型、常量定義,運算符與表達(dá)式。 C語言

2、程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 存取數(shù)據(jù)必須先確定數(shù)據(jù)的編碼方式、存儲格式和存取數(shù)據(jù)必須先確定數(shù)據(jù)的編碼方式、存儲格式和所占的存儲長度,所占的存儲長度, C語言中把這三者結(jié)合起來,給出語言中把這三者結(jié)合起來,給出幾種固定的形式,這些形式就是最基本的幾種固定的形式,這些形式就是最基本的數(shù)據(jù)類型數(shù)據(jù)類型。2.1 C2.1 C語言的基本數(shù)據(jù)類型語言的基本數(shù)據(jù)類型為什么要設(shè)置數(shù)據(jù)類型?為什么要設(shè)置數(shù)據(jù)類型? 在計算機中使用一定長度的存儲單元一定長度的存儲單元(通常是字節(jié)的倍數(shù))來存儲數(shù)據(jù)。 存儲的編碼方式編碼方式有:原碼、反碼、補碼、ASCII碼。 存儲的存

3、儲格式存儲格式有:定點型、浮點型。 其中,用于存儲數(shù)據(jù)的存儲單元的長度決定了用于存儲數(shù)據(jù)的存儲單元的長度決定了數(shù)據(jù)取值范圍的大小。數(shù)據(jù)取值范圍的大小。C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 字符字符型(型(charchar) 整型整型(short,int,long,unsignedshort,int,long,unsigned) 單精度型(單精度型(floatfloat) 實型實型 雙精度型(雙精度型(doubledouble) 枚舉類型(枚舉類型(enumenum) 數(shù)組類型(數(shù)組類型( ) 構(gòu)造類型構(gòu)造類型 結(jié)構(gòu)體類型(結(jié)構(gòu)體類型(structst

4、ruct) 共用體類型(共用體類型(unionunion) 指針類型(指針類型(* *) 空類型(空類型(voidvoid)基本類型基本類型數(shù)據(jù)類型數(shù)據(jù)類型一、數(shù)據(jù)類型概述本章中將對基本類型中的前三類進(jìn)行介紹和學(xué)習(xí)。本章中將對基本類型中的前三類進(jìn)行介紹和學(xué)習(xí)。C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 變量:變量:指指以標(biāo)識符為名字,其值可以改變的量。以標(biāo)識符為名字,其值可以改變的量。 在學(xué)習(xí)各種數(shù)據(jù)類型之前,我們先簡單了解一下常量常量和變量變量的概念。后面的章節(jié)中將會詳細(xì)介紹。 常量常量:指在程序運行中指在程序運行中,其數(shù)值不能被改變的量。其數(shù)值不能被改

5、變的量。 變量變量 代表計算機內(nèi)存中的某一存儲空間,代表計算機內(nèi)存中的某一存儲空間,變量的類型決定了該存儲空間的長度和其變量的類型決定了該存儲空間的長度和其中存放中存放數(shù)據(jù)的編碼方式及存儲格式。數(shù)據(jù)的編碼方式及存儲格式。 變量的類型也決定了該存儲空間中存放變量的類型也決定了該存儲空間中存放數(shù)據(jù)的數(shù)據(jù)形式和取值范圍。數(shù)據(jù)的數(shù)據(jù)形式和取值范圍。C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 * 八進(jìn)制的數(shù)碼范圍為八進(jìn)制的數(shù)碼范圍為07; 018 * 十六進(jìn)制的十六進(jìn)制的數(shù)碼除了數(shù)字?jǐn)?shù)碼除了數(shù)字0 09 9外外, , 還使用英文字母還使用英文字母a f (或或A F

6、)表示表示1015。 如:如:0 x1e 二、整型(采用定點整數(shù)的存儲格式,只能表示純整數(shù))1 1、整型常量:整型常量:(1) (1) 十進(jìn)制形式十進(jìn)制形式: :與數(shù)學(xué)上的整數(shù)表示相同;與數(shù)學(xué)上的整數(shù)表示相同; 例如例如: 12, -100, 0: 12, -100, 0 (2) (2) 八進(jìn)制形式八進(jìn)制形式: :在數(shù)碼前加數(shù)字在數(shù)碼前加數(shù)字0 0; 例如例如: 012=1: 012=1* *8 81 1+2+2* *8 80 0=10(=10(十進(jìn)制)十進(jìn)制) (3) (3) 十六進(jìn)制形式十六進(jìn)制形式: :在數(shù)碼前加在數(shù)碼前加0 0X X(數(shù)字?jǐn)?shù)字0和字母和字母X)。)。 例如例如: 0:

7、0 x12=1x12=1* *16161 1+2+2* *16160 0=18(=18(十進(jìn)制)十進(jìn)制)C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 如如Turbo C中,有中,有 short(2字節(jié)字節(jié))int(2字節(jié)字節(jié)) long(4字節(jié)字節(jié)) 關(guān)鍵字關(guān)鍵字 所占位數(shù)所占位數(shù) 取值范圍取值范圍 short 16 short 16 -32768-327683276732767 unsigned short 16 unsigned short 16 0 06553565535 int 16 int 16 -32768-327683276732767 uns

8、igned 16 unsigned 16 0 06553565535 long 32 -2147483648 long 32 -214748364821474836472147483647 unsigned long 32 unsigned long 32 0 042949672954294967295 2、整型變量的分類:整型變量的分類: 根據(jù)數(shù)據(jù)所占的存儲長度的不同分為根據(jù)數(shù)據(jù)所占的存儲長度的不同分為: :int、short、long; 同樣存儲長度的數(shù)據(jù)又分同樣存儲長度的數(shù)據(jù)又分unsigned、signed; 故可組合出六種類型。故可組合出六種類型。3、整型變量的值域:整型變量的值域:

9、由機器中數(shù)據(jù)的存儲長度決定由機器中數(shù)據(jù)的存儲長度決定思考:思考:int a=20000,b=20000,c; c=a+b; c的值為多少?的值為多少?如果如果c定義為定義為long型是否能解決問題?型是否能解決問題?C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁2、實型變量的分類及值域?qū)嵭妥兞康姆诸惣爸涤颍?關(guān)鍵字關(guān)鍵字 字節(jié)數(shù)字節(jié)數(shù) 取值范圍取值范圍 精度精度( (位位) ) float 4 float 4 3.4 3.41010-38 3.43.4101038 7 7 double 8 double 8 1.7 1.71010-308 1.71.71010

10、308 1515注意注意三、實型1 1、常量:常量:(1) (1) 十進(jìn)制小數(shù)形式:十進(jìn)制小數(shù)形式:由數(shù)字和小數(shù)點組成;由數(shù)字和小數(shù)點組成; 例如例如: 3.4, 4., .3: 3.4, 4., .3。(2) (2) 指數(shù)形式:指數(shù)形式:“十進(jìn)制小數(shù)十進(jìn)制小數(shù)”+“ e(+“ e(或或E)”+“E)”+“十進(jìn)制數(shù)整十進(jìn)制數(shù)整數(shù)數(shù)”。 例如例如: 12.5: 12.5e-6e-6 表示表示12.512.51010-6 。 小數(shù)點不能單獨出現(xiàn);小數(shù)點不能單獨出現(xiàn); 0.0. .0 .0 . . e e或或E E的兩邊必須有數(shù),且其后面必須為整數(shù);的兩邊必須有數(shù),且其后面必須為整數(shù); 如:如: 6

11、 6E0.2 E0.2 e5e5 C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 字符形式字符形式 功能功能 n n 換行換行 t t 橫向跳格橫向跳格 b b 退格退格 r r 回車回車 反斜杠字符反斜杠字符 單引號字符單引號字符 ddd 8ddd 8進(jìn)制數(shù)表示的進(jìn)制數(shù)表示的ASCIIASCII碼對應(yīng)的字符碼對應(yīng)的字符 xhh 16xhh 16進(jìn)制數(shù)表示的進(jìn)制數(shù)表示的ASCIIASCII碼對應(yīng)的字符碼對應(yīng)的字符四、字符類型1 1、常量:常量: (1) (1) 用單引號括起來的一個字符;如:用單引號括起來的一個字符;如:A、 1、?等等。 (2) (2) 用單

12、引號括起來的由反斜杠用單引號括起來的由反斜杠( ( ) )引導(dǎo)的轉(zhuǎn)義字符。引導(dǎo)的轉(zhuǎn)義字符。C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁4 4、字符串常量:字符串常量: 是用一對雙引號括起來的字符序列。是用一對雙引號括起來的字符序列。 注意:每個字符串的后面都有一個注意:每個字符串的后面都有一個00結(jié)束符。結(jié)束符。 如:如:“SHANGHAI”SHANGHAI”,“AbcdeFGHijkAbcdeFGHijk”,“How are How are you”you”。 注意注意 a a與與“a”a”的區(qū)別。的區(qū)別。例如:字符例如:字符A A的的ASCIIASCII

13、碼為:碼為: 65D65D(十進(jìn)制)(十進(jìn)制)=41H=41H(十六進(jìn)制)(十六進(jìn)制)=101Q=101Q(八進(jìn)制)(八進(jìn)制) 字符字符A A可以表示為可以表示為AA、x41x41、101101。2、字符型變量的分類:字符型變量的分類: char char 和和 unsigned charunsigned char;3 3、值域值域(字符型可參與數(shù)學(xué)運算,也可看成一種一字節(jié)的整型變量)(字符型可參與數(shù)學(xué)運算,也可看成一種一字節(jié)的整型變量) 每個字符型數(shù)據(jù)在內(nèi)存中占每個字符型數(shù)據(jù)在內(nèi)存中占一一個字節(jié);包括個字節(jié);包括ASCIIASCII字符表字符表中的所有字符(可顯示字符和非顯示字符)。中的所有

14、字符(可顯示字符和非顯示字符)。C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁一、常量與符號常量 常量常量是指在程序運行中是指在程序運行中,其數(shù)值不能被改變的量。其數(shù)值不能被改變的量。 常量常量又可分為直接常量和符號常量。又可分為直接常量和符號常量。2.2 2.2 常量與變量常量與變量C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 120 、 -100、 0; 0120、 072; 0 xFFFF、 0 x1e、0X28AF,0XED4 ; 120L, 200L ; 長整型常量長整型常量 3.14、 -3.1、 5.12E-6

15、 ; a 、#、n、101 ; 099、12f、 0 xg 、48EA ; 019.5 、1e-08; 實型常量只能用十進(jìn)制形式表示實型常量只能用十進(jìn)制形式表示 2.1E10.2、E-6、6.4E+4.8、E9 ; changsha 、+?ab ; 、p 、ab ;1、直接常量:直接常量:是在程序中直接引用的數(shù)據(jù)。是在程序中直接引用的數(shù)據(jù)。請判斷這些常量正確與否:請判斷這些常量正確與否:C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 定義形式定義形式: #define 標(biāo)識符標(biāo)識符 常量數(shù)據(jù)常量數(shù)據(jù) 例如例如: #define PI 3.14159 在程序預(yù)處

16、理時,凡是出現(xiàn)標(biāo)識符在程序預(yù)處理時,凡是出現(xiàn)標(biāo)識符PI的地方都將用的地方都將用數(shù)據(jù)數(shù)據(jù)3.14159來替換。來替換。 如如: 2*2.3*PI 就就等價于等價于 2*2.3*3.14159。 變量是指變量是指以標(biāo)識符為名字,其值可以改變的量。以標(biāo)識符為名字,其值可以改變的量。 變量代表計算機內(nèi)存中的某一存儲空間,該存儲空間變量代表計算機內(nèi)存中的某一存儲空間,該存儲空間 中存放中存放的數(shù)據(jù)就是變量的值。的數(shù)據(jù)就是變量的值。 在同一程序塊中,在同一程序塊中,變量變量不能被重復(fù)定義。不能被重復(fù)定義。 使用變量時必須使用變量時必須“先定義,后使用先定義,后使用”。 2、符號常量符號常量 是是用標(biāo)用標(biāo)識

17、符來表示一個數(shù)據(jù);識符來表示一個數(shù)據(jù);在程序不能給它賦值。在程序不能給它賦值。二、 變量C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁1、定義形式:定義形式:類型標(biāo)識符類型標(biāo)識符 變量名變量名1 ,變量名變量名2,變量名變量名3.; 自己設(shè)定,滿足自己設(shè)定,滿足標(biāo)識符的規(guī)定。標(biāo)識符的規(guī)定。如:如:int,int,float,charfloat,char;不可省;不可省2、變量初始化變量初始化 在定義變量的同時給變量一個初始值。在定義變量的同時給變量一個初始值。 注意注意int a=5, b=3; int a=5, b=3; int a=b=c=3; int a

18、=b=c=3; int a,b,c; a=b=c=3; int a,b,c; a=b=c=3; 例如例如:int a,b,c ; float x,y; char c1,c2; 或或 int c1,c2; 定義變量就是在內(nèi)存中劃出一塊相應(yīng)類型的存儲空間存放該變量的值。C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 mainmain( ) int x int x,y y,z z,w w; / /* *定義定義x x,y y,z z,w w為整型變量為整型變量* */ / unsigned int k unsigned int k; / /* *定義定義k k為無符

19、號整型變量為無符號整型變量* */ / x=10 x=10;y=-20y=-20;k=30k=30; z=x+kz=x+k;w=y+kw=y+k; printfprintf(“x+k=%dx+k=%d,y+k=%dn”y+k=%dn”,z z,w w); ; 例例2-1:程序運行結(jié)果為:程序運行結(jié)果為: x+k=40 x+k=40,y+k=10y+k=10 變量根據(jù)作用域的不同可分為變量根據(jù)作用域的不同可分為局部變量局部變量和和全局變量全局變量,根據(jù)存,根據(jù)存儲方式的不同可分為儲方式的不同可分為靜態(tài)存儲變量靜態(tài)存儲變量和和動態(tài)存儲變量動態(tài)存儲變量,這些我們將,這些我們將在第六章中詳細(xì)介紹。在第

20、六章中詳細(xì)介紹。C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 在數(shù)學(xué)里當(dāng)多個運算符一起組成一個表達(dá)式時,我們規(guī)在數(shù)學(xué)里當(dāng)多個運算符一起組成一個表達(dá)式時,我們規(guī)定了定了優(yōu)先級優(yōu)先級(先乘除后加減)和(先乘除后加減)和結(jié)合規(guī)則結(jié)合規(guī)則(從左至右)。(從左至右)。 同樣,在同樣,在C語言中,我們也規(guī)定了每個運算符的結(jié)合規(guī)語言中,我們也規(guī)定了每個運算符的結(jié)合規(guī)則及運算符之間的優(yōu)先級。則及運算符之間的優(yōu)先級。2.3 2.3 運算符與表達(dá)式運算符與表達(dá)式運算符:就是表示某種運算功能的符號。運算符:就是表示某種運算功能的符號。 按操作功能運算符大致可分為:按操作功能運算符

21、大致可分為:算術(shù)運算符、關(guān)系算術(shù)運算符、關(guān)系運算符、邏輯運算符、賦值運算符、運算符、邏輯運算符、賦值運算符、條件運算符、逗號運條件運算符、逗號運算符以及算符以及按位運算符按位運算符等。等。 表達(dá)式:是由操作數(shù)和運算符組成的序列。表達(dá)式:是由操作數(shù)和運算符組成的序列。 如:如:1+2*3-4 、 35-7 、a=b%2 等都是等都是C語言中的表達(dá)式。語言中的表達(dá)式。 下面分類介紹各種運算符:下面分類介紹各種運算符:C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁%(%(取余取余)()(注意:取余運算的操作數(shù)只能是整數(shù),且結(jié)注意:取余運算的操作數(shù)只能是整數(shù),且結(jié) 果

22、的符號與前一操作數(shù)的符號相同果的符號與前一操作數(shù)的符號相同) ) 一、一、 算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式1 1、 運算符運算符 +(+(加加) ):3+43+4、 +3+3 -( -(減減) ):3-53-5、 -5-5 * *( (乘乘) ):3 3* *5 5 /( /(除除) ):5/25/2、5.0/2 5.0/2 (注意,此二種形式,結(jié)果不同)(注意,此二種形式,結(jié)果不同)5%35%3的值為的值為2 2; -5%3-5%3的值為的值為-2-2;5%(-3)5%(-3)的值為的值為2 2; -5%(-3)-5%(-3)的值為的值為-2-2;12.3%3 12.3%3 若

23、若a%b a%b 的結(jié)果為的結(jié)果為0 0,則有,則有a a能被能被b b整除整除C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 2 2、算術(shù)表達(dá)式算術(shù)表達(dá)式 用算術(shù)運算符和括符將操作數(shù)連接起來的式子。用算術(shù)運算符和括符將操作數(shù)連接起來的式子。 優(yōu)先級:()優(yōu)先級:() * *、/ /、% +% +、- - 結(jié)合性:從左至右;結(jié)合性:從左至右; 表達(dá)式的值:表達(dá)式的值: 數(shù)值型數(shù)值型( (intint、longlong、unsignedunsigned、floatfloat、double)double);例如:例如: 已知:已知: float a=2.0;flo

24、at a=2.0; int b=6,c=3;int b=6,c=3; 求解:求解: a a* *b/c-1.5+a+fabs(-5)=b/c-1.5+a+fabs(-5)=?C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 float a=2.0;float a=2.0; int b =6,c =3; int b =6,c =3; a a* *b/c -1.5 +a +fabs(-5)b/c -1.5 +a +fabs(-5)12.012.0/3/354.0 4.0 - 1.5- 1.52.5 2.5 + 97(+ 97(int)int)99.99.5 5 +

25、5+ 5104.104.5 5(double)(double)思考思考 int a=1,b=2; 表達(dá)式表達(dá)式a/b+3的結(jié)果是多少?的結(jié)果是多少? int a=10000,b=30000; 表達(dá)式表達(dá)式a+b的結(jié)果是多少?的結(jié)果是多少? 如何修改?如何修改? double floatunsigned long long unsigned int int char,shortC語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁等價于:等價于:j=i;i+; j=i;i+; 所以所以i i的值為的值為4 4,j j的值為的值為3 3等價于:等價于:i+;j=i; i+

26、;j=i; 所以所以i i的值為的值為4 4,j j的值為的值為4 4(1) i=3;(1) i=3; j=i+; j=i+; (2) i=3;(2) i=3; j=+i; j=+i;3 3、自增與自減運算符自增與自減運算符 (+ 、-) +i,-i+i,-i:使用之前使:使用之前使i i的值增的值增1 1(或減(或減1 1);); i+,i- i+,i-:使用之后使:使用之后使i i的值增的值增1 1(或減(或減1 1););分析下面幾種情況中分析下面幾種情況中i與與j的值:的值: 當(dāng)當(dāng)+、 -不與其他運算符混合使用時,不與其他運算符混合使用時,+i+i與與i+i+都等價于都等價于 i=i+

27、1, -ii=i+1, -i與與i-i-都等價于都等價于 i=i-1i=i-1C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 如:如:i = 2;i = 2; j = -i+; j = -i+; 求執(zhí)行完這兩句后求執(zhí)行完這兩句后i i與與j j的值分別是多少的值分別是多少特殊的:設(shè)特殊的:設(shè)i=3i=3,j=4j=4,k=i+jk=i+j, k= i= k= i= j= j= 結(jié)合性:自右至左。結(jié)合性:自右至左。分析:分析:“+”與與”- -“是同優(yōu)先級,且都高于是同優(yōu)先級,且都高于“=”=” 按結(jié)合規(guī)則,等價于:按結(jié)合規(guī)則,等價于:j=-(i+);j=-(i

28、+); 結(jié)果:結(jié)果:i i的值為的值為3 3,j j的值為的值為-2-2。再看幾個例子:再看幾個例子:如:設(shè)如:設(shè)i=3i=3,k=(i+)+(i+)+(i+) k= k=(i+)+(i+)+(i+) k= i= i=96如:設(shè)如:設(shè)a=3,b=(a+)+(a+) b= a=3,b=(a+)+(a+) b= a= a=65設(shè)設(shè)a=3,b=(+a)+(a+) b= a=a=3,b=(+a)+(a+) b= a=85設(shè)設(shè)a=3,b=(a+)+(+a) b= a=a=3,b=(a+)+(+a) b= a=85設(shè)設(shè)a=3,b=(+a)+(+a) a=3,b=(+a)+(+a) b= a= b= a=1

29、05744C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 1 1、6 6種關(guān)系運算符:種關(guān)系運算符: = = != = = != 2 2、關(guān)系表達(dá)式:關(guān)系表達(dá)式:用關(guān)系運算符將表達(dá)式連接起來的式子用關(guān)系運算符將表達(dá)式連接起來的式子 優(yōu)先級優(yōu)先級: ( = )( = ) ( =( = != ) != ) 結(jié)合性結(jié)合性:自左至右;:自左至右; 表達(dá)式的值表達(dá)式的值: 若為真,則結(jié)果為若為真,則結(jié)果為1 1; 若為假,則結(jié)果為若為假,則結(jié)果為0 0。35 35 值為:值為: 32 32 值為:值為: 設(shè)設(shè)x=-2; -3x-1 x=-2; -3x-1 值為:值為:

30、設(shè)設(shè)x=1; 2x4 x=1; 2x4 值為:值為:例如例如二、關(guān)系運算符和關(guān)系表達(dá)式二、關(guān)系運算符和關(guān)系表達(dá)式求如下關(guān)系表達(dá)式的值:求如下關(guān)系表達(dá)式的值:0001算術(shù)運算符優(yōu)先級高于關(guān)系運算符算術(shù)運算符優(yōu)先級高于關(guān)系運算符3+(43)3+(43)* *4 4 值為:值為: 3+43+43 & | 結(jié)合性:自左至右;結(jié)合性:自左至右; 表達(dá)式的值:表達(dá)式的值: 若為真,則結(jié)果為若為真,則結(jié)果為1 1; 若為假,則結(jié)果為若為假,則結(jié)果為0 0。 三、邏輯運算符和邏輯表達(dá)式三、邏輯運算符和邏輯表達(dá)式 1 1、3 3種邏輯運算符:種邏輯運算符: & | !& | !參與邏輯運

31、算的操作數(shù)叫邏輯量。參與邏輯運算的操作數(shù)叫邏輯量。邏輯量可以是整型、實型、字符型和指針類型,邏輯量可以是整型、實型、字符型和指針類型,其中,其中,0 0,0.00.0,0,0,NULLNULL代表代表假假,其余邏輯量代表,其余邏輯量代表真真。C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 int a=5; float b=3.5; !a ( ) !(a b) ( ) a & b ( ) !a&b ( ) !a&!b ( ) !(a&b) ( ) a b ( ) !a|b ( ) !a|!b ( ) !(a|b) ( ) (a 0

32、) ( ) (a 0) ( )例如例如011000110001C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁例如表達(dá)式運算如下:例如表達(dá)式運算如下:混合優(yōu)先級:混合優(yōu)先級: ! ! 高高 算術(shù)運算符算術(shù)運算符 關(guān)系運算符關(guān)系運算符 &和和| | 賦值運算符賦值運算符 低低 4 - 04 - 01 & 21 & 28 48 3 & 2 | 8 3 & 2 | 8 4 - !5C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁例如:例如: (1)(1)a = 0; b = 1; a = 0; b

33、 = 1; c = a+ & ( b = 3 ); c = a+ & ( b = 3 ); 執(zhí)行后執(zhí)行后: a: a為為 ,b,b為為 ,c,c為為 。 邏輯或優(yōu)化和邏輯與優(yōu)化:邏輯或優(yōu)化和邏輯與優(yōu)化: 在邏輯表達(dá)式的求解中,并不是所有的邏輯運算符都在邏輯表達(dá)式的求解中,并不是所有的邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求出表被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求出表達(dá)式的解時,才執(zhí)行該運算符。達(dá)式的解時,才執(zhí)行該運算符。110(2)(2)a = 1; b = 1; c=0;a = 1; b = 1; c=0; d = -a d = -a b- b- (c

34、 = b+3 ); (c = b+3 ); 執(zhí)行后執(zhí)行后: a: a為為 ,b,b為為 ,c,c為為 ,d,d為為 。0001C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁例如:例如: (1) n(1) n是小于是小于m m的偶數(shù):的偶數(shù): (2)year(2)year是閏年是閏年: : (能被(能被4 4整除但不能被整除但不能被100100整除整除, ,或能被或能被400400整除)整除)邏輯表達(dá)式一般用于控制語句中的條件:邏輯表達(dá)式一般用于控制語句中的條件:n m & n % 2 = 0n m & n % 2 = 0 year % 4 =

35、0 & year % 100 != 0 | year % 400 = 0C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁例如例如:(1) (1) x=(y=12)/4 x=(y=12)/4 (2) x=y=12/4 (2) x=y=12/4 (3) x=(y=12/4) (3) x=(y=12/4) (4)(x=y)=12/4(4)(x=y)=12/4四、賦值運算符和賦值表達(dá)式四、賦值運算符和賦值表達(dá)式 1 1、賦值運算符賦值運算符 = = ( (執(zhí)行功能:把執(zhí)行功能:把= =右邊的表達(dá)式的值,存入右邊的表達(dá)式的值,存入= =左邊的左邊的變量變量對應(yīng)的存

36、儲空間,即給此變量賦值對應(yīng)的存儲空間,即給此變量賦值) 3=2+1 a=a+2) 3=2+1 a=a+2 2 2、賦值表達(dá)式:賦值表達(dá)式:用賦值運算符將變量和表達(dá)式連接起來的式子用賦值運算符將變量和表達(dá)式連接起來的式子 形式形式: : = 求值規(guī)則求值規(guī)則: : 將將“=”=”右邊表達(dá)式的值賦給左邊的變量。右邊表達(dá)式的值賦給左邊的變量。 優(yōu)先級:優(yōu)先級: ! ! 算術(shù)算術(shù) 關(guān)系關(guān)系 & & | | 賦值賦值 結(jié)合性:自右至左;結(jié)合性:自右至左; 表達(dá)式的值:表達(dá)式的值:被賦值變量的值被賦值變量的值。y y值為值為1212,x x值為值為3 3,表達(dá)式的值為,表達(dá)式的值為3 3y

37、 y值為值為3 3,x x值為值為3 3,表達(dá)式的值為,表達(dá)式的值為3 3y y值為值為3 3,x x值為值為3 3,表達(dá)式的值為,表達(dá)式的值為3 3 C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁練習(xí):練習(xí):設(shè)設(shè)a=12a=12,計算表達(dá)式,計算表達(dá)式a+=a-=aa+=a-=a* *1212和和a+=a-=aa+=a-=a* *=12=12的值的值 3 3、復(fù)合賦值運算符復(fù)合賦值運算符 * *= =、/=/=、 %=%=、 +=+=、 -=, =-=, =, &=, &=、 =、 = 復(fù)合運算符是一個運算符復(fù)合運算符是一個運算符, ,但功能

38、上但功能上, ,是兩個運算符功是兩個運算符功能的組合。能的組合。例如例如: a+=b : a+=b 相當(dāng)于相當(dāng)于 a=a+ba=a+b a a* *=b =b 相當(dāng)于相當(dāng)于 a=aa=a* *b b注意:注意:a a* *=b+c =b+c 相當(dāng)于相當(dāng)于 a=aa=a* *(b+c) (b+c) 而不是而不是 a=aa=a* *b+cb+c 優(yōu)先級:優(yōu)先級: 與與 = = 是同一優(yōu)先級。是同一優(yōu)先級。 結(jié)合性:自右至左;結(jié)合性:自右至左; 表達(dá)式的值:表達(dá)式的值:被賦值變量的值被賦值變量的值。-2640C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 求值規(guī)則:

39、求值規(guī)則: 先求解表達(dá)式先求解表達(dá)式1 1的值的值 若為真若為真( (非非0),0),求解表達(dá)式求解表達(dá)式2 2,并把表達(dá)式,并把表達(dá)式2 2的值的值 作為整個條件表達(dá)式的值作為整個條件表達(dá)式的值 若為假若為假(0),(0),求解表達(dá)式求解表達(dá)式3 3,并把表達(dá)式,并把表達(dá)式3 3的值作的值作 為整個條件表達(dá)式的值為整個條件表達(dá)式的值 四、其它運算符四、其它運算符 1 1、條件運算符條件運算符 ? ?和和: : , ,它們與三個操作數(shù)組組成三元運算。它們與三個操作數(shù)組組成三元運算。 形式為形式為: : ? ? :3 優(yōu)先級:優(yōu)先級: 邏輯邏輯 條件條件 賦值賦值 結(jié)合性:自右至左;結(jié)合性:自右

40、至左;C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁2 2、逗號運算符:逗號運算符: , 形式形式: : 表達(dá)式表達(dá)式1 1,表達(dá)式,表達(dá)式2 2,表達(dá)式,表達(dá)式n n 求值規(guī)則求值規(guī)則: : 從左至右依次計算各表達(dá)式的值從左至右依次計算各表達(dá)式的值; 優(yōu)先級:優(yōu)先級: 最低;最低; 結(jié)合性:自左至右;結(jié)合性:自左至右; 表達(dá)式的值:最后一個表達(dá)式的值。表達(dá)式的值:最后一個表達(dá)式的值。又如:又如: y = x10 ? x/10 : x0 ? x: -xy = x10 ? x/10 : x0 ? x: -x 當(dāng)當(dāng)x x的值為整型的的值為整型的1515時,表達(dá)式的

41、結(jié)果為:時,表達(dá)式的結(jié)果為: 當(dāng)當(dāng)x x的值為整型的的值為整型的5 5時,表達(dá)式的結(jié)果為:時,表達(dá)式的結(jié)果為:15 5例如例如: : intint max, max,a=5a=5,b=3;b=3; max=ab?a:b max=ab?a:b 求求maxmax的值的值 max的值為的值為5C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁例如:例如: a b y a b y 表達(dá)式表達(dá)式 y=a=4,b=5,a+b; y=a=4,b=5,a+b; y=(a=4,b=5,a+b); y=(a=4,b=5,a+b); y=(a=4,b=5),a+b; y=(a=4,b=

42、5),a+b; y=a=(4,b=5),a+b; y=a=(4,b=5),a+b; 4 45 54 49 94 45 59 99 94 45 59 95 55 55 55 51010C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 形式有兩種:形式有兩種: sizeof 變量名變量名 sizeof (類型名類型名) 結(jié)果為整型數(shù)。結(jié)果為整型數(shù)。 int a int a; float xfloat x; printf(“%d,%d”,sizeof a,sizeof x);printf(“%d,%d”,sizeof a,sizeof x); printf(“%d,%

43、d”,sizeof(int),sizeof(float); printf(“%d,%d”,sizeof(int),sizeof(float); 以上兩個以上兩個printfprintf語句結(jié)果均為語句結(jié)果均為 。例如例如3 3、求求字節(jié)運算符:字節(jié)運算符: sizeof 作用:求得變量或某種數(shù)據(jù)類型所需的字節(jié)數(shù)。作用:求得變量或某種數(shù)據(jù)類型所需的字節(jié)數(shù)。2 2,4 4C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計C語言程序設(shè)計上一頁上一頁下一頁下一頁 C C語言允許整型、實型、字符型數(shù)據(jù)進(jìn)行混合運算。語言允許整型、實型、字符型數(shù)據(jù)進(jìn)行混合運算。 有有3 3種轉(zhuǎn)換方式:自動轉(zhuǎn)換、賦值轉(zhuǎn)換和強制轉(zhuǎn)換。

溫馨提示

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

評論

0/150

提交評論