第二章 C語(yǔ)言的數(shù)據(jù)類型和運(yùn)算_第1頁(yè)
第二章 C語(yǔ)言的數(shù)據(jù)類型和運(yùn)算_第2頁(yè)
第二章 C語(yǔ)言的數(shù)據(jù)類型和運(yùn)算_第3頁(yè)
第二章 C語(yǔ)言的數(shù)據(jù)類型和運(yùn)算_第4頁(yè)
第二章 C語(yǔ)言的數(shù)據(jù)類型和運(yùn)算_第5頁(yè)
已閱讀5頁(yè),還剩19頁(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、語(yǔ)言講義第二章 C語(yǔ)言的數(shù)據(jù)類型和運(yùn)算第二章 C語(yǔ)言的數(shù)據(jù)類型和運(yùn)算2.1 數(shù)據(jù)類型數(shù)據(jù)是計(jì)算機(jī)加工處理的對(duì)象,C語(yǔ)言中的數(shù)據(jù)包括:常量、變量和有返回值的函數(shù)。為存儲(chǔ)和處理的需要,將數(shù)據(jù)劃分為不同的類型,編譯程序?yàn)椴煌念愋头峙洳煌笮〉拇鎯?chǔ)空間(存儲(chǔ)單元的字節(jié)數(shù)),并對(duì)各種類型規(guī)定了該類型能進(jìn)行的運(yùn)算(運(yùn)算符集),任何類型數(shù)據(jù)的值均被限制在一定的范圍內(nèi),稱為數(shù)據(jù)類型的值域(取值范圍)。短整數(shù)short (16bit)整數(shù)int (16bit)長(zhǎng)整數(shù)long (32bit)基本類型(簡(jiǎn)單類型)數(shù)值類型整型實(shí)型(浮點(diǎn)型)單精度型float (32bit)雙精度型double (64bit)字符類

2、型char (8bit)枚舉類型enum構(gòu)造類型(組合類型)(導(dǎo)出類型)數(shù)組類型結(jié)構(gòu)類型struct聯(lián)合(共用)類型union文件類型FILE指針類型空類型voidC的數(shù)據(jù)類型2.1.1 C的數(shù)據(jù)類型說(shuō)明: 構(gòu)造類型是由基本類型按一定的規(guī)律構(gòu)造而成的。 空類型的作用:表示函數(shù)沒(méi)有返回值;說(shuō)明函數(shù)無(wú)參數(shù);表示指針不指向任何值。2.1.2 數(shù)值型數(shù)據(jù)的表示與存儲(chǔ)形式如的表示: 日常表示 語(yǔ)言中的表示3.14159*100 3.14159e00.314159*101 0.314159e+10.0314159*102 0.0314159e231.4159*10-1 31.4159e-13141.59*

3、10-3 3141.59e-3尾數(shù)部份指數(shù)部分 小數(shù)點(diǎn)的位置是浮動(dòng)的,稱為浮點(diǎn)數(shù)形式。在計(jì)算機(jī)內(nèi)部實(shí)數(shù)都以浮點(diǎn)形式存儲(chǔ),如float占4個(gè)字節(jié),三個(gè)字節(jié)存數(shù)字部分,一個(gè)字節(jié)存指數(shù)部分。0 . 3 1 4 1 5 9 + 1數(shù)字部分(3個(gè)字節(jié))指數(shù)部分(1個(gè)字節(jié))小數(shù)點(diǎn)的位置是固定的,稱為定點(diǎn)數(shù),如:3.14159 ,10,-20, 1992顯然整數(shù)都屬于定點(diǎn)數(shù),如:整數(shù)10,在計(jì)算機(jī)內(nèi)部一般占2個(gè)字節(jié)。 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1定點(diǎn)數(shù)的小數(shù)點(diǎn)一般是在最高位(定點(diǎn)小數(shù))或在最低位(定點(diǎn)整數(shù))。對(duì)于實(shí)數(shù)型定點(diǎn)數(shù)如:3.14159,語(yǔ)言則把它按指數(shù)形式存放3.1

4、4159e0,即的實(shí)數(shù)一律以浮點(diǎn)形式存儲(chǔ)。2.1.3字符型數(shù)據(jù)的表示和存儲(chǔ)形式字符型數(shù)如:(a,A,#,3)在內(nèi)存中以相應(yīng)的ASCII代碼存放(占一個(gè)字節(jié)),如a的ASCII代碼為97,存儲(chǔ)形式為:0 1 1 0 0 0 0 1在中,ASCII代碼值可以被看成整數(shù),如A+32為97與a等價(jià)。2.1.4 基本類型的名字和長(zhǎng)度下列關(guān)鍵字稱為類型區(qū)分符:char、 int、 short、 long、 signed 、unsigned 、float、double類型區(qū)分符代表一個(gè)基本類型的名字,用來(lái)說(shuō)明一個(gè)數(shù)據(jù)的類型。表2.1 基本類型的名字和長(zhǎng)度完整的類型名簡(jiǎn)單的類型名類型的長(zhǎng)度(字節(jié))取值范圍ch

5、ar char 1有符號(hào):-128127 無(wú)符號(hào):0255signed charsigned char1-128127unsigned charunsigned char10255int int 2或4(與具體機(jī)器有關(guān))字節(jié):-32768327674字節(jié):約-21億21億short intshort2-3276832767long intlong4約-21億21億signed int signed2或4 (同int)同intunsigned intunsigned2或 4(同int)字節(jié):0655354字節(jié):約042億signed short int signed shor2-32768327

6、67unsigned short intunsigned short2065535singed long int signed long 4約-21億21億unsigned long intunsinged long4約042億float float4 絕對(duì)值約13.4e-3813.4e+38double double8絕對(duì)值約:1.7e-3081.7e+308long doublelong double>=8由具體實(shí)現(xiàn)定義說(shuō)明:signed和unsigned不能同時(shí)修飾char,short和long或signed和unsigned不能同時(shí)修飾int。float不能使用任何修飾詞,dou

7、ble可用long修飾;int的長(zhǎng)度與具體機(jī)器的字長(zhǎng)相同,在16位機(jī)上為2字節(jié),在32位機(jī)上為字節(jié)。因此,int 的長(zhǎng)度與short或long 相同。signed char用個(gè)字節(jié)的低位表示字符值,最高位表示符號(hào)。unsigned char用整個(gè)字節(jié)表示字符值,無(wú)符號(hào)位。char表示有符號(hào)和無(wú)符號(hào)與具體機(jī)器系統(tǒng)有關(guān),但char一定和signed char或unsigned char其中之一同。在多數(shù)機(jī)器系統(tǒng)中,char與signed char同。浮點(diǎn)類型的范圍與浮點(diǎn)在機(jī)器內(nèi)的表示有關(guān),標(biāo)準(zhǔn)沒(méi)有規(guī)定浮點(diǎn)數(shù)格式,大多數(shù)機(jī)器浮點(diǎn)數(shù)格式為:對(duì)于個(gè)字節(jié)浮點(diǎn)數(shù),階碼占位,尾數(shù)占位,位符號(hào)位: 尾 數(shù) 階碼

8、23位8位符號(hào)位(1位)對(duì)于字節(jié)的浮點(diǎn)數(shù): 尾 數(shù) 階碼符號(hào)位(1位)52位11位在浮點(diǎn)數(shù)中尾數(shù)位決定精度(有效數(shù)字位數(shù)),階碼決定取值范圍。對(duì)于帶符號(hào)的數(shù)據(jù)類型,一般用最高位(左邊第位)表示符號(hào),表示正,表示負(fù),數(shù)值以補(bǔ)碼形式存放(一個(gè)正數(shù)的補(bǔ)碼是該數(shù)的二進(jìn)制數(shù)),如()補(bǔ)為0000000000001010。一個(gè)負(fù)數(shù)的補(bǔ)碼為取反加,如()補(bǔ)為1111111111110110。表中列出的short,int, long 是帶符號(hào)的(隱含signed);對(duì)于無(wú)符號(hào)的數(shù)據(jù)類型,最高位不作為符號(hào),與其它各位一起表示數(shù)值,因此,無(wú)符號(hào)數(shù)只表示正數(shù)不表示負(fù)數(shù),與同樣長(zhǎng)度的帶符號(hào)正數(shù)相比表示的最大數(shù)擴(kuò)大了一

9、倍。字符型數(shù)據(jù)也分為signed和unsigned。ANSI標(biāo)準(zhǔn)ASCII碼字符的允許取值范圍為0127,用位表示就可以了,最左位補(bǔ)表示正數(shù)。有些計(jì)算機(jī)系統(tǒng),除ASCII碼字符外,還擴(kuò)展使用一些圖形符號(hào)(如“”),擴(kuò)充使用用128255,其第一位為。因此,對(duì)signed字符型數(shù)取值范圍為-128127。對(duì)unsigned字符型,取值范圍為0255; 實(shí)數(shù)類型數(shù)據(jù)signed、unsigned之分;以后各章均使用類型的簡(jiǎn)寫形式;語(yǔ)言提供了一個(gè)測(cè)試某一類型數(shù)據(jù)所占存儲(chǔ)空間長(zhǎng)度的運(yùn)算符sizeof,格式為sizeof(類型標(biāo)識(shí)符)。如sizeof(char)為, sizeof(long)為。2.1

10、常量和變量的常量有兩種形式:一種是文字常量,簡(jiǎn)稱常量或常數(shù),文字常量是由表示值的文字本身直接表示的常量,如123,3.14159;另一種是符號(hào)常量,是用標(biāo)識(shí)符表示的文字常量(標(biāo)識(shí)符一般用大寫英文字母),標(biāo)識(shí)符是文字常量的名字。任何一個(gè)常量都屬于一個(gè)數(shù)據(jù)類型,文字常量的類型由文字常量自身隱含說(shuō)明,如123為整型,3.14159是一個(gè)浮點(diǎn)型,符號(hào)常量的類型由定義時(shí)指定。2.2.1常量的表示的常量有整數(shù)常量、浮點(diǎn)常量、字符常量、字符串常量和枚舉常量。整數(shù)整數(shù)有三種形式:十進(jìn)制整數(shù)、八進(jìn)制整數(shù)和十六進(jìn)制整數(shù)。十進(jìn)制整數(shù) 十進(jìn)制整數(shù)由數(shù)字09組成的數(shù)字串,多位數(shù)時(shí)最左第一個(gè)數(shù)字不能為,前面可以有表示正負(fù)

11、的符號(hào)“”或“”,“”可以省略。如738 -500+39是合法的整數(shù)。八進(jìn)制整數(shù)八進(jìn)制整數(shù)由數(shù)字07組成的數(shù)字串,第一個(gè)數(shù)字必須為0(前導(dǎo)零),它是八進(jìn)制數(shù)的標(biāo)志,八進(jìn)制一般用于表示無(wú)符號(hào)數(shù)如:0137027+013-024是合法的八進(jìn)制整數(shù),而0128非法。八進(jìn)制可以與十進(jìn)制轉(zhuǎn)換:如0137=95若將轉(zhuǎn)換為八進(jìn)制:0188811余余余即:十六進(jìn)制整數(shù)十六進(jìn)制整數(shù)是由數(shù)字09和字母af(或)組成的符號(hào)串,符號(hào)串必須以x或X(十六進(jìn)制的前綴)開(kāi)頭,十六進(jìn)制表示無(wú)符號(hào)整數(shù),如0x13a0xc320xff0xb8000xdc都是合法的十六進(jìn)制整數(shù)。013ax13a13a均為非法。說(shuō)明:所有整數(shù)的缺省

12、類型是int,通過(guò)在其后面加后綴字母,可以表示長(zhǎng)整數(shù)(long)無(wú)符號(hào)整數(shù)(unsigned)和無(wú)符號(hào)長(zhǎng)整數(shù)(unsigned long)。長(zhǎng)整數(shù):在任意進(jìn)制整數(shù)后面加l或,如27l018l0x1aL無(wú)符號(hào)整數(shù):在任意進(jìn)制整數(shù)后加u或。如27u0400U0x1aU無(wú)符號(hào)長(zhǎng)整數(shù):任意進(jìn)制的整數(shù)后加ul或UL。如:27ul 0400UL0x1aUL.后綴字母大小寫任意,由于l與數(shù)字容易混,常用。當(dāng)整數(shù)的值超出int類型所能表示的范圍時(shí),稱為整數(shù)溢出。整數(shù)溢出會(huì)產(chǎn)生不正確的結(jié)果,為避免溢出或類型轉(zhuǎn)換的需要,應(yīng)根據(jù)具體情況將整數(shù)相應(yīng)地表示為長(zhǎng)整數(shù)、無(wú)符號(hào)整數(shù)或無(wú)符號(hào)長(zhǎng)整數(shù),如在16位機(jī)上,整數(shù)1234

13、56會(huì)產(chǎn)生溢出,應(yīng)表示成123456L.2、浮點(diǎn)數(shù)浮點(diǎn)數(shù)的一般形式為:±整數(shù)部分 .小數(shù)部分 e±n其中 表示可選項(xiàng),e±n稱為指數(shù)部分,e±n 表±n, “e”可以寫成“”。n稱為階碼(位十進(jìn)制無(wú)符號(hào)常整數(shù),可以有前導(dǎo)但仍表示十進(jìn)制),n前面的“”可以省略。如-123.567e+5 -123.567E5 -123.567e05 都是代表值-12356700.0浮點(diǎn)數(shù)的組成規(guī)則如下:一個(gè)浮點(diǎn)數(shù)可以無(wú)整數(shù)部分或小數(shù)部分,但不能二者均無(wú)。一個(gè)浮點(diǎn)數(shù)可以無(wú)小數(shù)點(diǎn)或指數(shù)部分,但不能二者均無(wú)。例如:3.141593 .1E+02 -.234e+5 243

14、.e-2 2.01234e+3 0. .08 100.0 都是合法的浮點(diǎn)數(shù)。若將2.01e+3寫成2010,將. 寫成,或?qū)?00. 寫成100則它們不是浮點(diǎn)數(shù)而是整數(shù)。下面一些是非法表示:-.e+1 既無(wú)小數(shù)部分也無(wú)整數(shù)部分1e-0.5:階碼不是整數(shù)1e+I:階碼不是常量(除非I已定義為符號(hào)整型常量)當(dāng)浮點(diǎn)數(shù)超出它的類型所能表示的范圍產(chǎn)生浮點(diǎn)溢出。如果浮點(diǎn)數(shù)的絕對(duì)值小于所能表示的最小值則下溢。如1.7e-309和-1.7e-309均產(chǎn)生下溢。下溢時(shí)絕對(duì)值太小以致機(jī)器不能表示而產(chǎn)生零值,稱之為“機(jī)器零”。下溢時(shí)機(jī)器可能不能正常運(yùn)行。當(dāng)浮點(diǎn)數(shù)的絕對(duì)值大于所能表示的最大值時(shí)產(chǎn)生上溢,如1.7e30

15、9和-1.7e309均產(chǎn)生上溢。上溢時(shí)將產(chǎn)生錯(cuò)誤的結(jié)果。浮點(diǎn)數(shù)的缺省類型是double,通過(guò)在浮點(diǎn)數(shù)后面加后綴字母可以表示單精度(float)數(shù)、雙精度數(shù)(double)和高精度 (lang double) 數(shù)。單精度浮點(diǎn)數(shù):在浮點(diǎn)數(shù)后面加f或F。如:3.14159F。雙精度浮點(diǎn)數(shù):在浮點(diǎn)數(shù)后面加d或D。如:3.14159d。高精度浮點(diǎn)數(shù):在浮點(diǎn)數(shù)后面加l或L。如:3.14159L。在程序中可根據(jù)存儲(chǔ)的需要、精度的需要或類型轉(zhuǎn)換的需要將浮點(diǎn)數(shù)表示為適當(dāng)?shù)念愋汀?、字符常數(shù)字符常數(shù)通常是指一對(duì)單引號(hào)(單撇號(hào))括起來(lái)的一個(gè)字符,形式為:字符字符常數(shù)可以被看成是一個(gè)整數(shù),值為該字符的ASCII碼值。

16、字符常數(shù)有兩種表示方法。(1) 用字符的圖形符號(hào)表示一個(gè)字符,形式為: 字符的圖形符號(hào)字符的圖形符號(hào)是指可打印字符,ASCII碼字符集中,字符碼為32126的字符是可打印字符,因而這種方法只適用于部分字符。如: a B + 3 > 注意:a和a表示兩種完全不同的概念,a是一個(gè)字符常數(shù),a是由單個(gè)字母構(gòu)成的標(biāo)識(shí)符。另外,在可打印字符中,有兩個(gè)特殊字符不能用圖形符號(hào)來(lái)表示,它們是單引號(hào)本身()和反斜線()。即 是非法表示,要想表示它們必須用轉(zhuǎn)義序列表示。(2)用轉(zhuǎn)義序列表示一個(gè)字符,形式為: 轉(zhuǎn)義序列轉(zhuǎn)義序列是由反斜線()開(kāi)頭的一個(gè)特殊字符串,每個(gè)轉(zhuǎn)義序列表示字符集中的一個(gè)字符,轉(zhuǎn)義序列及其

17、表示的字符如表2.2所示。表2.2轉(zhuǎn)義序列轉(zhuǎn)義序列ASCII字符碼表示的字符十進(jìn)制八進(jìn)制十六進(jìn)制0abfnrtv?”oooxhh 0 7 8 12 10 13 9 11 92 63 39 3402550255 0 7 10 014 012 015 011 013 134 077 047 042000377000377 0x00 0x07 0x08 0x0c 0x0a 0x0d 0x09 0x0b 0x5c 0x3f 0x27 0x220x000xff0x000xff空字符響鈴字符退格字符換頁(yè)字符換行字符回車字符水平制表字符垂直制表字符反斜線字符問(wèn)號(hào)字符單引號(hào)字符雙引號(hào)字符以ooo為字符碼的字符

18、以xhh 為字符碼的字符說(shuō)明:()從表中可以看出,轉(zhuǎn)義序列有兩種形式:一種是反斜線后跟一個(gè)圖形符號(hào);另一種轉(zhuǎn)義序列的位型“ooo”和“xhh”。前者表示常用的控制字符(字符碼為031的字符),如n表示一個(gè)換行字符,其ASCII碼為十進(jìn)制10。后者可以表示字符集中的任一字符(字符碼為0255的所以字符)。()位型中的ooo表示個(gè)八進(jìn)制數(shù)字,可以不用前綴;hh表示個(gè)十六進(jìn)制數(shù)字,x 是前綴不能省。例如:水平制表符可用下列任一種形式表示:t011 11 x09 x9字符A可用下列任一種形式表示:A 101 x41 ()單引號(hào)和反斜線字符雖然是打印字符,但編譯程序規(guī)定必須用轉(zhuǎn)義序列表示。例如:?jiǎn)我?hào)字

19、符可用下列任一種形式表示: 047 47 x27反斜線字符可用下列任一種形式表示: 0134 134 x5c()雙引號(hào)字符常數(shù)可以用圖形符號(hào)或轉(zhuǎn)義序列任一種形式表示。例如:“” 042 x22()字符0是值為的字符(空字符),不是空白字符。0除表示值外,它強(qiáng)調(diào)對(duì)象的類型是字符型。也就是說(shuō),表示值為的字符用0比用好。、字符串C語(yǔ)言沒(méi)有字符串類型,但可以表示字符串常數(shù),字符串變量是用字符數(shù)組來(lái)表示的。字符串常數(shù)(簡(jiǎn)稱字符串)是用一對(duì)雙引號(hào)括起來(lái)的一個(gè)字符序列,其字符的個(gè)數(shù)稱為字符串長(zhǎng)度。形式為:“字符序列”雙引號(hào)是字符串的定界符而不是字符串的組成部分,雙引號(hào)中的任何一個(gè)字符都是一個(gè)字符常數(shù),形式為

20、不帶單引號(hào)的字符(圖形符號(hào)或轉(zhuǎn)義字符)。例如:“This is a stringn”一個(gè)字符串可以包含個(gè)字符,表示為“”(兩個(gè)相鄰的雙撇號(hào)),稱為空串。字符串在機(jī)內(nèi)存儲(chǔ)時(shí),系統(tǒng)自動(dòng)在其末尾加了一個(gè)0,0是字符串的結(jié)束標(biāo)志,以確定字符串的實(shí)際長(zhǎng)度,字符串的存儲(chǔ)長(zhǎng)度比實(shí)際長(zhǎng)度大??沾拇鎯?chǔ)長(zhǎng)度為,存儲(chǔ)長(zhǎng)度為。注意:()“a” 和a是兩個(gè)不同的概念。()當(dāng)雙引號(hào)作為字符串的組成字符時(shí),必須用轉(zhuǎn)義序列表示。如:“” is a empty strinng”表示:“” is a empty strinng()當(dāng)單引號(hào)作為字符串的組成字符時(shí),可以用圖形符號(hào)表示,也可以用轉(zhuǎn)義字符表示,如:“Its a pen

21、.” “Its a pen.”()字符串可以連接。被連接的兩個(gè)字符串之間可以有個(gè)或多個(gè)空白字符,但不能有其它字符。如:“Hello,” “how are you?”等價(jià)于“Hello, how are you?”字符串連接主要用于源程序中表示長(zhǎng)度跨越多行的字符串。如:printf(“Hello,how are you?”); 是非法的。因?yàn)檎Z(yǔ)法規(guī)定字符串常數(shù)必須書(shū)寫一行。如果一行寫不下可用兩種方法:printf(“Hello,How are you?”); 是續(xù)行符或:printf(“Hello,” “how are you:”);2.2.2符號(hào)常量為使程序易于閱讀和便于修改,可以給程序中經(jīng)常

22、使用的常量定義一個(gè)有一定含義的名字,這個(gè)名字稱為符號(hào)常量。符號(hào)常量是一個(gè)標(biāo)識(shí)符,有三種方法定義一個(gè)符號(hào)常量:一種是利用編譯預(yù)處理的宏替換功能#define;另一種是用const類型限定符說(shuō)明并初始化一個(gè)標(biāo)識(shí)符;第三種方法是通過(guò)定義枚舉類型來(lái)定義符號(hào)常量(以后講)。1. 用#define定義符號(hào)常量形式:#define 標(biāo)識(shí)符 常量表達(dá)式常量表達(dá)式是值為常量的表達(dá)式,一般為已定義的符號(hào)常量或文字常量,也可以由運(yùn)算符連接常量形成的表達(dá)式;標(biāo)識(shí)符是符號(hào)常量的名字,它代表常量表達(dá)式所表示的文字。例如:#define SIZE 100#define PI 3.1415926#define BLANK #

23、define TWO_PI 2.0*PI注:符號(hào)常量的名字(標(biāo)識(shí)符)一般用大寫字母。#define 行不是C語(yǔ)句,而是編譯程序的預(yù)處理控制,因此其后面不加“;”2. 用const定義符號(hào)常量。形式:const 類型區(qū)分符 標(biāo)識(shí)符=常量表達(dá)式;符號(hào)“=”左邊的標(biāo)識(shí)符被定義為常量,標(biāo)識(shí)符代表常量表達(dá)式的值。例如:const int MAX=1000;const double PI=3.14159;const char BLANK=;const signed TRUE=1,FALSE=0;說(shuō)明:用#define和const定義的符號(hào)常量在實(shí)現(xiàn)上有本質(zhì)不同。#define在編譯預(yù)處理時(shí)用常量表達(dá)式去替

24、換程序中所有出現(xiàn)的常量標(biāo)識(shí)符,標(biāo)識(shí)符沒(méi)有對(duì)應(yīng)的存儲(chǔ)單元;由const說(shuō)明的標(biāo)識(shí)符是一個(gè)不可更改的左值,編譯時(shí)要給它分配存儲(chǔ)單元。應(yīng)用舉例:計(jì)算圓柱體的體積V=r2h#include “stdio.h”void main (void) float v,r,h; printf (“input r,h:”); scanf (“%f%f”,&r,&h); v=3.14159 r*r*h; printf (“v=%fn”,v); 如果使用符號(hào)常量:#include “stdio.h”#define PI 3.14159 viod main void) float v,r,h; prinr

25、f(“input r,h:”); scanf (“%f%f”,&e,&h); v=PIr*r*h; printf(“v=%fn”,v);2.2.3變量說(shuō)明變量:在程序中其值可變的量,每一個(gè)變量都有一個(gè)名字(標(biāo)識(shí)符),稱為變量名。常量的類型是由常量自身隱含說(shuō)明的,不需要做顯示說(shuō)明,而變量的類型必須做顯示說(shuō)明。C程序中任何變量必須遵循現(xiàn)說(shuō)明后引用的原則,以便編譯程序?yàn)樽兞糠峙溥m當(dāng)長(zhǎng)度的存儲(chǔ)單元以及確定變量所允許的運(yùn)算。變量說(shuō)明的形式:類型區(qū)分符 變量表。類型區(qū)分符:說(shuō)明變量中所列變量的數(shù)據(jù)類型。變量表由一個(gè)或多個(gè)變量名組成,多于一個(gè)變量時(shí)中間用逗號(hào)“,”隔開(kāi)。一個(gè)說(shuō)明結(jié)束必須用分號(hào)

26、“;”。變量數(shù)又稱說(shuō)明符表,這里一個(gè)變量名即是一個(gè)說(shuō)明符。如: int age,index;與int age; int index;等價(jià)程序中有些變量在使用前需要設(shè)置初值,如做為計(jì)數(shù)器使用(如n+;)和做累加和的變量(如sum=sum+x)通常置初值為零,做累乘積的變量(如time=time*y)通常置初值為1。給變量賦初值有兩種方式:一是通過(guò)賦值語(yǔ)句置初值(如i=0;);另一個(gè)方式是在變量說(shuō)明時(shí)給出初值稱為初始化,格式為:類型區(qū)分符 變量名=表達(dá)式,;如: int age=15,index=1,i=0,j=0; int i=j=0; 非法。因?yàn)閕=j=0等價(jià)于i=(j=0),而(j=0)是賦

27、值表達(dá)式。 int i,j=0; j被初始化為0;i的初值不確定。 char c=”y”; double esp=1.0e-5;注意:引用一個(gè)沒(méi)有值的變量非法。2.3 運(yùn)算符和表達(dá)式C的運(yùn)算符十分豐富。由運(yùn)算符通過(guò)對(duì)運(yùn)算對(duì)象(操作數(shù))進(jìn)行各種操作,按操作數(shù)的數(shù)目可將運(yùn)算符分為:?jiǎn)文浚ㄒ辉?,雙目(二元)和三目(三元)運(yùn)算符;按運(yùn)算符的功能分類有:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、自增和自減運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符和條件運(yùn)算符。另外還有數(shù)組的下標(biāo) 、 函數(shù)調(diào)用( )、表順序求值的逗號(hào)運(yùn)算符和類型強(qiáng)制運(yùn)算符等。表達(dá)式是由運(yùn)算符、操作符數(shù)組成的符合的語(yǔ)法算式。從本質(zhì)上說(shuō),表達(dá)式是對(duì)運(yùn)算規(guī)則的描

28、述并按規(guī)則執(zhí)行運(yùn)算,運(yùn)算的結(jié)果是一個(gè)值,稱為表達(dá)式的值,其類型稱為表達(dá)式的類型。單個(gè)操作數(shù)也是表達(dá)式。常量、變量、有返回值的函數(shù)調(diào)用和用()括起來(lái)的表達(dá)式稱為簡(jiǎn)單表達(dá)式。由簡(jiǎn)單表達(dá)式和以簡(jiǎn)單表達(dá)式為操作數(shù)的表達(dá)式都是表達(dá)式。如 y3(x4) “”稱為賦值運(yùn)算符表達(dá)式的運(yùn)算規(guī)則是由運(yùn)算符的功能和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性決定的。為使表達(dá)式按一定的順序求值,編譯程序?qū)⑺羞\(yùn)算符分成若干組,每組規(guī)定一個(gè)等級(jí)稱為運(yùn)算符的優(yōu)先級(jí),優(yōu)先級(jí)高的先執(zhí)行運(yùn)算。處于同一優(yōu)先級(jí)的運(yùn)算符的運(yùn)算順序稱為運(yùn)算符的結(jié)合性。運(yùn)算符的結(jié)合性有從左至右(左結(jié)合)和從右至左(右結(jié)合)兩種。表2·2 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性優(yōu)先

29、級(jí)運(yùn)算符結(jié)合性1() -> · 左結(jié)合2! (單目) (單目)(類型) *(指針運(yùn)算) & sizeof(類型名)右結(jié)合3*(乘法) %左結(jié)合4(雙目) (雙目)左結(jié)合5<< >>左結(jié)合6< < > >左結(jié)合7 !左結(jié)合8&左結(jié)合9左結(jié)合10|左結(jié)合11&&左結(jié)合12| |左結(jié)合13? :左結(jié)合14 * % & | << >>左結(jié)合2.3.1 算術(shù)運(yùn)算算術(shù)運(yùn)算符包括(單目) (單目) (雙目) (雙目) * (實(shí)數(shù)式整數(shù)) %(整數(shù))雙目 , * , ,的操作數(shù)可為任

30、何整數(shù)式或浮點(diǎn)數(shù)。對(duì)于“” “” 還可以用于指針加(減)一個(gè)整數(shù)。雙目運(yùn)算符的兩個(gè)操作數(shù)類型可以不同,運(yùn)算時(shí)自動(dòng)轉(zhuǎn)換成相同的類型(以后介紹)。基本原則是值域較窄的類型向較寬的類型轉(zhuǎn)換。例如: 135 結(jié)果為整數(shù)18 兩個(gè)操作數(shù)類型相同不轉(zhuǎn)換 13.05 結(jié)果為18.0 將5轉(zhuǎn)換為5.0 后運(yùn)算 d97 結(jié)果為整數(shù)3, d 的類型為char,先將 d 轉(zhuǎn)換成整數(shù)100再運(yùn)算對(duì)于除運(yùn)算符“”,如果兩操作數(shù)都是整數(shù)則執(zhí)行整數(shù)除,結(jié)果也是整數(shù),值為商的整數(shù)部分,小數(shù)部分被截去;若至少有一個(gè)操作數(shù)為浮點(diǎn)數(shù)則執(zhí)行實(shí)數(shù)除,結(jié)果為浮點(diǎn)數(shù)。如: 155 結(jié)果為整數(shù)3 12 結(jié)果為整數(shù)0 85 結(jié)果為整數(shù)11.0

31、2 或 12.0 結(jié)果為實(shí)數(shù)0.5或1.02.0對(duì)于求余運(yùn)算符%,規(guī)定兩操作數(shù)必須為整數(shù),運(yùn)算結(jié)果也為整數(shù),值為左操作數(shù)除以右操作數(shù)所得的余數(shù),符號(hào)與左操作數(shù)相同。如:17%5 或 17%5 結(jié)果為整數(shù) 217%5 或 17%5 結(jié)果為整數(shù)25%10 結(jié)果為整數(shù)510%5 結(jié)果為整數(shù)0整數(shù)除和求余運(yùn)算存在下列關(guān)系:a%baa/b*b 其中a,b均為整數(shù)下面是一個(gè)由算術(shù)運(yùn)算符連接操作數(shù)構(gòu)成的表達(dá)式25(i%j*8/(ik) 其中i,j,必須為整數(shù)k可為整數(shù)或?yàn)楦↑c(diǎn)數(shù)2.3.2 關(guān)系運(yùn)算關(guān)系運(yùn)算符包括 < (小于) < (小于等于) > (大于) > (大于等于) (等于)

32、 !(不等)關(guān)系運(yùn)算符比較兩個(gè)操作數(shù)值的大小,操作數(shù)可以為整數(shù)、字符、實(shí)數(shù),兩操作數(shù)類型可以不同,運(yùn)算符按一般算術(shù)轉(zhuǎn)換規(guī)則自動(dòng)轉(zhuǎn)換成相同的類型。結(jié)果類型一定為int,如果操作數(shù)關(guān)系成立則結(jié)果為非0(一般為1),否則為0。注意C語(yǔ)言中沒(méi)有表示邏輯真值和邏輯假值的數(shù)據(jù)。任何非0值(一般為非0整數(shù))都表示邏輯真,整數(shù)0表示邏輯假。如:a!=b 表達(dá)式值為非0,50+70<=100.0 表達(dá)式值為0.如果用浮點(diǎn)數(shù)比較來(lái)測(cè)試某個(gè)條件,則可能永遠(yuǎn)得不到所希望的結(jié)果。如設(shè)x,y為浮點(diǎn)變量,則表達(dá)式:x/y*y= =x 值可能不成立。若需要判別兩實(shí)數(shù)是否大約相等,可用下式表示:fabs(x/y*y-x)

33、<e-5 如:數(shù)學(xué)中axb與C中a=<x<=b含義不同。若a=0,b=0.5,x=0.3。則執(zhí)行 “a=<x<=b”時(shí)先求a<=x得1(真)再執(zhí)行1<=b得0(假)。為判別x是否在區(qū)間a,b內(nèi)應(yīng)為:a<=x && x<=b 表達(dá)式5>2>7>8在數(shù)學(xué)中不允許,在C中是允許的。按自左向右的原則:5>2為1 1>7為0 0>8為0整個(gè)表達(dá)式為的值0 關(guān)系表達(dá)式的值為,也可看作整型表達(dá)式。如:int i=1,j=7,a;a=i+(j%4!=0);最后a的值為 字符比較按ASC碼進(jìn)行b&

34、gt;a為a>A為a<0為 0=0為1 例如:z=3-1>=x+1<=y+z 若x為2,y=3 則z的值為1 2.3.3 邏輯運(yùn)算邏輯運(yùn)算符包括:&&(與) |(或) !(非)邏輯運(yùn)算符的操作數(shù)可以為任何基本類型,&&和|的兩個(gè)操作數(shù)的類型可以不同,運(yùn)算時(shí)不執(zhí)行類型轉(zhuǎn)換。非0值的操作數(shù)視為邏輯真,0值操作數(shù)視為邏輯假,運(yùn)算結(jié)果類型為int,值為非0(邏輯真)或0(邏輯假)。運(yùn)算規(guī)則:0&&0 為0; 0&&1 為0; 1&&0 為0; 1&&1 為1注 1可用任何非0操作數(shù)代

35、替,下同。0|0 為0 0|1 為1 1|0 為1 1|1 為1 !0 為0 !1 為0如:(c<=z)&&(c>=a) 或 c<=z&&c>=a其結(jié)果如果變量c的值是小寫字母,則上式為真(非0)否則為0。d<0|d>9 若d為非數(shù)字時(shí),表達(dá)式為非0 。否則為0!i等價(jià)于 i= =0 但!i 比i= =0效率高,若c為字符型,檢查c 是否為空白字符時(shí) 用!c 比 c= =0好注意:對(duì)于邏輯與(&&)運(yùn)算,當(dāng)左操作數(shù)為0(假)時(shí)整個(gè)表達(dá)式的值已確定為假,則右操作數(shù)根本就不計(jì)算(運(yùn)算短路)。 如:int i=1,j

36、=1,k; i>1&&k=i+j 其結(jié)果整個(gè)表達(dá)式的值為(假),k的值為。對(duì)于邏輯或(|)運(yùn)算,當(dāng)左操作數(shù)為非(真)時(shí)整個(gè)表達(dá)式的值已確定為真,則右操作數(shù)根本就不計(jì)算。 如:int i=1,j=1,k; i1|k=i+j 其結(jié)果整個(gè)表達(dá)式的值為1(真),k的值為。2.3.4 自增和自減運(yùn)算 自增和自減運(yùn)算符包括:+(增1) -(減1) “+”和“-”是單目運(yùn)算符,操作數(shù)必須是可更改的左值表達(dá)式。左值表達(dá)式是一個(gè)表示存儲(chǔ)單元的表達(dá)式,一般為不帶const說(shuō)明的變量名。帶const說(shuō)明的標(biāo)識(shí)符是不可更改的左值表達(dá)式。可更改的左值表達(dá)式包括:基本類型的變量名、下標(biāo)表達(dá)式、指針變

37、量名和間接訪問(wèn)表達(dá)式(指針變量)、結(jié)構(gòu)成員選擇表達(dá)式和結(jié)構(gòu)變量名。用()括起來(lái)的左值表達(dá)式也是左值表達(dá)式?!? +”將操作數(shù)加1,“ -”將操作數(shù)減1,結(jié)果類型與操作數(shù)類型相同。整型或浮點(diǎn)型操作數(shù)按整型數(shù)值1增加或減少,指針類型操作數(shù)以后講。“+ +”或 “-”可以出現(xiàn)在操作數(shù)前面(前綴式)或后面(后綴式) 如 +n -n n+ n-。前綴式先將操作數(shù)增(減),然后取操作數(shù)的新值作為表達(dá)式的結(jié)果。例如若n=1 則+n結(jié)果為2,n的新值為2。后綴式將操作數(shù)增(減)1之前的值作為表達(dá)式的結(jié)果。操作數(shù)的增(減)1運(yùn)算是在引用表達(dá)式的值之后完成的稱為后綴+(或)的計(jì)算延遲。一直延遲到出現(xiàn)下面情況時(shí),操

38、作數(shù)才增(減)。·邏輯與運(yùn)算符&&·邏輯或運(yùn)算符|·條件運(yùn)算符?:·順序求值運(yùn)算符,·一個(gè)完整的表達(dá)式(包括以語(yǔ)句形式出現(xiàn)的表達(dá)式,選擇語(yǔ)句中的選擇表達(dá)式,循環(huán)語(yǔ)句中的控制表達(dá)式,return語(yǔ)句中表達(dá)式)舉例:設(shè) int x=0 , y=1; x+x+ 結(jié)果為。整個(gè)表達(dá)執(zhí)行完后x值為。即若 z=x+x+ 則z的值為,x的值為2。 yx+&&x 結(jié)果為1,因?yàn)榻Y(jié)果為,&&后面的x值為因而整個(gè)表達(dá)式的值為 z=x*y| y結(jié)果z的值為,因?yàn)閨后的y值為,因而整個(gè)表達(dá)式的值為,z的值為。上機(jī)可以測(cè)試:

39、“+”、“”運(yùn)算的延遲情況。#include “stdio.h”void main(void) int x=0,y=1; printf(“x=%d,y=%dn”,x,y); printf(“x+=%dn”,x+); printf(“d=%dn”,y); printf(“x=%d,y=%dn”,x,y);輸出:x=0,y=1; x+=0 y=1 x=1,y=0注:自增(自減)運(yùn)算符的結(jié)合性是自右至左。它的運(yùn)算對(duì)象只能是整型變量,而不能是表達(dá)式或常數(shù),如5+或(x+y)+非法,+x也是非法,x+也是非法的。若x為5,y為5,z=x-y,則x=4,y=5,z=0。例:1 +i+i 是錯(cuò)的,中間應(yīng)有空

40、格:+i+ +i; 它的結(jié)合方法是:從左向右盡可能多地把連續(xù)的+號(hào)組成運(yùn)算符。 2 i=3; j=+i+ +i, printf(“%d”,j),則輸出10; 而printf(“%d”,+i+ +i),則輸出9。 printf(“%d %d”,+i+ +i, i);則輸出9 3。 而printf(“%d %d”,i, +i+ +i);則輸出5 9。 3若i=3;j=i+ + +i;則j的值是8,i的值是5; 4若i=3;i=i+ + +i;則i的值是9; 5若i=3;i=i+ + i+;則i的值是8; 6若i=3;j=i+ + i+;則j的值是6,i的值是5; 7若i=3;i=+i + +i;則

41、i的值是10;2.3.5 位運(yùn)算任何數(shù)據(jù)在計(jì)算機(jī)內(nèi)部都是以二進(jìn)制碼形式存儲(chǔ)的。例如一個(gè)unsigned char類型的字符A存儲(chǔ)形式為01000001。位運(yùn)算是以逐個(gè)二進(jìn)制位為直接處理對(duì)象的運(yùn)算。這是C語(yǔ)言區(qū)別于其它高級(jí)語(yǔ)言的特色之一。位運(yùn)算符是指 (求反) &(按位與) |(按位或) (按位加 、異或)>>(右移) <<(左移)除是單目運(yùn)算符外,其余均為雙目運(yùn)算符。所有位運(yùn)算符的操作對(duì)象必須是整數(shù)。兩個(gè)操作數(shù)類型可以不同,運(yùn)算之前遵循一般算術(shù)轉(zhuǎn)換規(guī)則自動(dòng)轉(zhuǎn)換為相同的類型。結(jié)果類型是轉(zhuǎn)換后的類型,結(jié)果的值與是有符號(hào)或無(wú)符號(hào)數(shù)有關(guān)。1 求反運(yùn)算()運(yùn)算符“”將操作

42、數(shù)的每個(gè)二進(jìn)制位取成相反值,即0變1,1變0。結(jié)果類型與操作數(shù)類型同。例:unsigned i=0xd3f5,j=0; short k=0; 將i變成二進(jìn)制碼 1101001111110101 i=0010110000001010即i為0x2C0Aj的二進(jìn)制碼為全0, j為全1,即65535將k各位求反,k為全1,因是有符號(hào)類型整數(shù),所以k為-1。2 按位與、或、加運(yùn)算(&、|、 )運(yùn)算規(guī)則:i j i&j i|j ij0 0 00 00 1 01 11 0 01 11 1 11 0可以看出:i0的結(jié)果是i; i1的結(jié)果是i;例如 unsigned short x=0xd3f5

43、,y=0xff,z;(1) z=0xd3f5 & 0xff;它的值為0xf5,即0xd3f5通過(guò)與0xff按位與取上了它的低8位,而高8位被屏蔽,0xff稱屏蔽碼。1101001111110101 & 0000000011111111 0000000011110101(2) z=0xd3f5|0xffz被賦值為0xd3ff 通過(guò)與0xff按位或運(yùn)算。使原來(lái)的數(shù)高8位不變低8位變?yōu)槿?。(3)z=0xd3f50xffz被賦值為0xd30a。 低8位取反其余不變(4)對(duì)于十進(jìn)制的位操作,應(yīng)先轉(zhuǎn)化為二進(jìn)制,運(yùn)算后再轉(zhuǎn)為十進(jìn)制。如:int i ,j , k i =5; /*i的值為-6

44、*/j=5&8 ; /*j的值為*/k=58; /*k的值為*/利用“”,可使兩個(gè)變量的值交換(不借助于第三個(gè)變量)。例:a=3;b=4; a=ab; b=ba=b(ab)=abb=a0=a a=ab=(ab)b(ab)=abbab=b0=b課堂作業(yè):要想讓某數(shù)的第4位取反其它位不變,應(yīng)如何設(shè)置。3移位運(yùn)算符(<<和>>)"<<" 和">>"是雙目運(yùn)算符。移位運(yùn)算的規(guī)則是將左操作數(shù)向左(“”或向右(“)”移動(dòng)由右操作數(shù)指定的位數(shù)。兩操作數(shù)必須為整數(shù),且右操作數(shù)為正數(shù),可以是值為正整數(shù)的表達(dá)式,結(jié)果類

45、型與轉(zhuǎn)換后的左操作數(shù)類型相同。左移時(shí),高位被移出(丟掉),右邊空出的低位用0填充,右移時(shí),左邊空出的高位的填充方式?jīng)Q定于右操作數(shù)的類型,如果是無(wú)符號(hào)數(shù),則用0填充,否則用符號(hào)位填充。例:unsigned x=65,y=15;short z=-8;(1) x<<3該表達(dá)式的值為520,類型與x相同。X=65=0x41=0000000001000001,左移3位后X=0000001000001000=520X<<3等價(jià)于x*2*2*2,即x<<n相當(dāng)于x乘上2n。但x<<15的結(jié)果是多少?(2) y>>3該表達(dá)式的值為,表達(dá)式的類型與y相

46、同。Y=15即0xf二進(jìn)制是0000000000001111右移位后 變成0000000000000001為整數(shù)1。y>>3等價(jià)于y/2/2/2或y/(2*2*2),即:y>>n相當(dāng)于y整除2n。() z>>該表達(dá)式的值為-2,類型為intz=-8=1111111111111000(的補(bǔ)碼),右移位后z=1111111111111110(的補(bǔ)碼)=-2位操作綜合應(yīng)用舉例:例將整數(shù)的低字節(jié)作為結(jié)果的低字節(jié),的低字節(jié)作為結(jié)果的高字節(jié)拼成一個(gè)新的整數(shù)。(P&0377)| (K&0xff)<<8其中P&0377取出的低字節(jié)(低位)

47、,K&0xff取出的低字節(jié),(K&0xff)<<8使的低字節(jié)成為高字節(jié),最后由| 拼裝(“<<”優(yōu)先于“|”)。例2設(shè)x,m,n為unsigned short,且m15,n,取出x從第m位(從右至左編號(hào)依次為:15)開(kāi)始向右的n位,并使其向右端(第位)靠齊。x>>(m-n+1)&(0<<n)其中m-n+1是要被取出部分距離右端的位數(shù),x>>(m-n+1)向右端靠齊,(0<<n)制作一個(gè)低端n位為,其余為的屏蔽位。2.3.6 賦值運(yùn)算賦值就是把值存入變量對(duì)應(yīng)的存儲(chǔ)單元中,語(yǔ)言中賦值操作是作為一種表達(dá)式

48、來(lái)處理的,賦值運(yùn)算符()可以和算術(shù)運(yùn)算符(,)及雙目位運(yùn)算符(&,|,>>,<<)組合成一個(gè)復(fù)合賦值運(yùn)算符。賦值運(yùn)算符共有11個(gè)。= += -= *= /= %= &= |= = <<= >>=注意:復(fù)合運(yùn)算符的兩個(gè)組成符號(hào)之間不能有空白字符。簡(jiǎn)單賦值簡(jiǎn)單賦值運(yùn)算符“僅執(zhí)行賦值操作,表達(dá)式的形式為:操作數(shù)操作數(shù)“的功能是將右操作數(shù)的值賦給由左操作數(shù)指定的存儲(chǔ)單元(變量)。左操作數(shù)必須是一個(gè)可更改內(nèi)容的左值表達(dá)式.賦值運(yùn)算符的右操作數(shù)類型可以和左操作數(shù)不同,執(zhí)行賦值之前右操作數(shù)被自動(dòng)轉(zhuǎn)換為左操作數(shù)的類型。如:int j; j=5.6

49、;則j的值為;表達(dá)式的結(jié)果和類型與左操作數(shù)相同。對(duì)于基本類型,賦值表達(dá)式的形式可具體化為:變量名表達(dá)式例如:int i=5,j;float a=3.0,b=3.5;double r;char c1,c2;c1=a;j=c1; /*由char向int轉(zhuǎn)換,結(jié)果賦給j*/r=a*b+i; /*a*b的結(jié)果由float向double轉(zhuǎn)換,結(jié)果賦給r*/c2=j; /*j由int向char轉(zhuǎn)換,其結(jié)果賦給c2*/i=c1>c2; /*c1>c2的類型與左操作數(shù)相同,直接賦值*/當(dāng)右操作數(shù)又是一個(gè)賦值表達(dá)式時(shí),形成多重賦值表達(dá)式,例如:i=j=0是一個(gè)合法的賦值表達(dá)式,“”右結(jié)合。因此上式等

50、價(jià)于i=(j=0) ,而j=0表達(dá)式的值為,因此i的值也為,但要注意:多重賦值表達(dá)式不能出現(xiàn)在變量說(shuō)明中,如:int i=j=0; 是非法的。 2復(fù)合賦值 復(fù)合賦值運(yùn)算符包括+ = - = * = / = % = &= |= = <<=和>>=,其形式為操作數(shù)1 OP=操作數(shù)2可理解為下面的展開(kāi)形式: 操作數(shù)1=操作數(shù)1 OP操作數(shù)2例如 i+=1 可理解為i=i+1注意:復(fù)合賦值運(yùn)算符與它的展開(kāi)形式不一定等價(jià) 如 si+=1 /*i增加1 */ 展開(kāi)形式 si+=si+1 /* i增加2 */ 3表達(dá)式求值的副作用一個(gè)變量的值由于計(jì)算表達(dá)式時(shí)而發(fā)生了

51、不應(yīng)有的改變,這種效應(yīng)稱為表達(dá)式求值的副作用:賦值操作、自增、自減操作及函數(shù)調(diào)用都有副作用。 c=b*=a+2; 應(yīng)是 b=b*(a+2); c=b;而不是 b*=a; c=b+2; 賦值操作右結(jié)合。 如 x=i+j; 應(yīng)如何理解:x=(i+)+j 或x=i+(+j)?C編譯器總是從左至右盡量地將若干字符組成一個(gè)運(yùn)算符。上式應(yīng)理解為 x=(i+)+j 諸如 i=(k=j+1)+(j=5),不同的編譯器有不同的理解。在C中不符合交換律,在turbo C2.0中先算k=j+1,再算j=5.2.3.7 條件運(yùn)算條件運(yùn)算符(?:)是一個(gè)三元運(yùn)算符,一般形式為操作數(shù)1?操作數(shù)2:操作數(shù)3操作數(shù)1必須為基本類型或指針類型、(一般為整型的)表達(dá)式,操作數(shù)2和操作數(shù)3可以是其它任何類型的表達(dá)式,且類型也可以不一致。計(jì)算e2結(jié)果為e2的值計(jì)算e3結(jié)果為e3的值非0e10條件運(yùn)算符的規(guī)則如圖所示: 注意:e2和e3中只有一個(gè)被求值。

溫馨提示

  • 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)論