計(jì)算機(jī)語(yǔ)言編程結(jié)構(gòu)化程序的開(kāi)發(fā)_第1頁(yè)
計(jì)算機(jī)語(yǔ)言編程結(jié)構(gòu)化程序的開(kāi)發(fā)_第2頁(yè)
計(jì)算機(jī)語(yǔ)言編程結(jié)構(gòu)化程序的開(kāi)發(fā)_第3頁(yè)
計(jì)算機(jī)語(yǔ)言編程結(jié)構(gòu)化程序的開(kāi)發(fā)_第4頁(yè)
計(jì)算機(jī)語(yǔ)言編程結(jié)構(gòu)化程序的開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩43頁(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、第三章 結(jié)構(gòu)化程序的開(kāi)發(fā)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.1提綱3.1 一些常用的轉(zhuǎn)義序列3.2 再論C語(yǔ)言中的數(shù)據(jù)類型3.3 混合運(yùn)算時(shí)各種數(shù)據(jù)類型之間的轉(zhuǎn)換3.4 格式化輸出3.5 賦值運(yùn)算符3.6 自增和自減運(yùn)算符3.7 條件運(yùn)算符和逗號(hào)運(yùn)算符3.8 算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyri

2、ght 2004-2011 Aspose Pty Ltd.2轉(zhuǎn)義序列含 義 描 述ntrab換行。將光標(biāo)定位到下一行的開(kāi)始位置。水平制表符。把光標(biāo)跳到tab鍵的下一個(gè)輸出區(qū)?;剀?。把光標(biāo)定位在當(dāng)前行(而不是下一行)的開(kāi)始位置。響鈴。使系統(tǒng)鈴發(fā)聲。光標(biāo)回退一個(gè)字符。反斜扛。打印一個(gè)反斜扛字符。雙引號(hào)。打印一個(gè)雙引號(hào)字符。3.1 一些常用的轉(zhuǎn)義序列轉(zhuǎn)義字符:反斜杠;轉(zhuǎn)義序列:反斜杠后面加上特定的一個(gè)字符;%:打印一個(gè)百分號(hào)printf(比例是%f,percentage);更多轉(zhuǎn)義序列見(jiàn)C程序設(shè)計(jì)教程299頁(yè)Evaluation only.Created with Aspose.Slides for

3、 .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.3main() printf(123456781234567812345678n); printf(1t12t123tHello!n); /*t的使用*/ printf(tHello! n); printf(1234567890); printf(bbHello! n); /*b的使用*/ printf(1234r%n); /*打印、和*/ printf(“a”); /*使系統(tǒng)發(fā)出一聲*/ system(pause); return 0; 轉(zhuǎn)義字符舉例1234567812345678

4、123456781 12 123 Hello! Hello!12345678Hello!%4請(qǐng)按任意鍵繼續(xù) . . .Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.4提綱3.1 一些常用的轉(zhuǎn)移序列3.2 再論C語(yǔ)言中的數(shù)據(jù)類型 掌握:數(shù)據(jù)類型的種類、取值范圍和格式說(shuō)明符3.3 混合運(yùn)算時(shí)各種數(shù)據(jù)類型之間的轉(zhuǎn)換3.4 格式化輸出3.5 賦值運(yùn)算符3.6 自增和自減運(yùn)算符3.7 條件運(yùn)算符和逗號(hào)運(yùn)算符3.8 算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性Eval

5、uation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.5C語(yǔ)言中只有以下幾種基本數(shù)據(jù)類型: char:字符型,可以存放字符集中的一個(gè)字符 int:整型 float:?jiǎn)尉雀↑c(diǎn)型 double:雙精度浮點(diǎn)型此外,還有用于限定這些基本類型的類型限定符:short(限定int)、long(限定int 和double)signed和unsigned(限定char和任何整數(shù)類型)3.2 C語(yǔ)言中的數(shù)據(jù)類型Evaluation only.Created with A

6、spose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.63.2 C語(yǔ)言中的數(shù)據(jù)類型一、short、long限定整數(shù)類型示例:short int age; long int counter; long long int population; short int、 long int、long long int可分別簡(jiǎn)寫(xiě)為short,long和 long long。如:short age;int數(shù)據(jù)一般為16位或32位,long數(shù)據(jù)一般為32位, long long 為64位。各個(gè)編譯程序可以根據(jù)硬件情況自由

7、選擇int、short、long的長(zhǎng)度,唯一限制是short和int數(shù)據(jù)至少要有16位,而long數(shù)據(jù)至少要有32位;short數(shù)據(jù)長(zhǎng)度int數(shù)據(jù)長(zhǎng)度 long數(shù)據(jù)長(zhǎng)度 long long數(shù)據(jù)長(zhǎng)度。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.73.2 C語(yǔ)言中的數(shù)據(jù)類型 三、signed、unsigned限定char類型和任何整數(shù)類型 signed char 、 unsigned char signed short 、 unsigned

8、 short signed int 、 unsigned int signed long 、 unsigned long signed long long、 unsigned long long經(jīng)unsigned限定的類型取值范圍必須是正的或者為0。一般省略signed,如signed char通常寫(xiě)成char。 二、long可限定double類型 long doubleEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.8所以,C語(yǔ)言支持2種

9、不同的字符類型: signed char、 unsigned char轉(zhuǎn)換說(shuō)明符: signed char:c unsigned char: u取值范圍:signed char:128127(1字節(jié))unsigned char:0255 (1字節(jié)) 3.2 C語(yǔ)言中的兩種字符類型Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.9所以,C語(yǔ)言支持8種不同的整形:short 、 unsigned shortint、 unsigned intlo

10、ng、 unsigned long long long、 unsigned long long轉(zhuǎn)換說(shuō)明符:short:hd, unsigned short : huint : %d, unsigned int : ulong :%ld, unsigned long : lu long long:%lld unsigned long long:%llu 3.2 C語(yǔ)言中的八種整形類型Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.10取值范圍

11、和具體硬件有關(guān)。在short是16位、int和long是32位、long long是64位的機(jī)器上數(shù)值范圍如下:signed short:-3276832767 ( 16位)unsigned short: 065535 ( 16位)signed int: -2147483648 2147483647 ( 32位)unsigned int: 04294967295 ( 32位)signed long: -2147483648 2147483647 ( 32位)unsigned long:04294967295 ( 32位)signed long long: (64位) -922337289223

12、3727unsigned long long : (64位) 0 184467445 3.2 C語(yǔ)言中的八種整形類型Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.11所以, C語(yǔ)言支持支持三種不同長(zhǎng)度的浮點(diǎn)數(shù)據(jù)類型:float、double和long double。 其中float一般占字節(jié)(2位)、提供位有效數(shù)字;double一般占8字節(jié)(64位)、提供1516位有效數(shù)字; long double 占12字節(jié)(96位)。轉(zhuǎn)換說(shuō)明符:fl

13、oat:fdouble :lf long double: lf 3.2 C語(yǔ)言中的三種浮點(diǎn)類型Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.12 3.2 C語(yǔ)言中的三種浮點(diǎn)類型取值范圍:float : -3.4*1038 3.4*1038 double : -1.7*10308 1.7*10308 long double: -1.2*104932 1.2*104932Evaluation only.Created with Aspose.

14、Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.13提綱3.1 一些常用的轉(zhuǎn)移序列3.2 再論C語(yǔ)言中的數(shù)據(jù)類型3.3 混合運(yùn)算時(shí)各種數(shù)據(jù)類型之間的轉(zhuǎn)換3.4 格式化輸出3.5 賦值運(yùn)算符3.6 自增和自減運(yùn)算符3.7 條件運(yùn)算符和逗號(hào)運(yùn)算符3.8 算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.143.3.1 隱式轉(zhuǎn)換C編譯器只知

15、道計(jì)算操作數(shù)的數(shù)據(jù)類型相同的表達(dá)式。如果一個(gè)運(yùn)算符兩側(cè)的操作數(shù)的數(shù)據(jù)類型不同,則系統(tǒng)按“先轉(zhuǎn)換、后運(yùn)算”的原則,首先將數(shù)據(jù)自動(dòng)轉(zhuǎn)換成同一類型,然后在同一類型數(shù)據(jù)間進(jìn)行運(yùn)算。類型轉(zhuǎn)換分成兩種:隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。隱式轉(zhuǎn)換的基本原則是將低類型數(shù)據(jù)轉(zhuǎn)換成高類型數(shù)據(jù)(數(shù)據(jù)類型提升)。各種類型的高低順序如下:Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.15高低數(shù)據(jù)類型scanf函數(shù)的轉(zhuǎn)換說(shuō)明符printf函數(shù)的轉(zhuǎn)換說(shuō)明符long doubledo

16、ublefloatunsigned longlongunsigned intintunsigned shortshortunsigned charchar%lf%lf%f%lu%ld%u%d%hu或%u%hd%u%c%lf%lf%f%lu%ld%u%d %hu或%u %hd%u%c數(shù)據(jù)類型提升的順序Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.16long doublefloat doubleunsigned long longunsig

17、ned int unsigned char、 unsigned short int char、short轉(zhuǎn)換原則:1 ) 所有char及short int 型變量轉(zhuǎn)為int型,所有float轉(zhuǎn)換為double。2) 操作數(shù)中 較低類型數(shù)據(jù)轉(zhuǎn)換成較高類型數(shù)據(jù)后再進(jìn)行運(yùn)算。注意:箭頭方向只表示數(shù)據(jù)類型由低向高轉(zhuǎn)換,int型數(shù)據(jù)和double型數(shù)據(jù)混合運(yùn)算時(shí), int型直接轉(zhuǎn)換為double型,而不是轉(zhuǎn)換成unsigned int型,再轉(zhuǎn)換成long型、再轉(zhuǎn)換成unsigned long int型 ,最后轉(zhuǎn)換成double型。Evaluation only.Created with Aspose.S

18、lides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.17類型轉(zhuǎn)換實(shí)例char ch=Q;int i=2;float f=12.34;double d=15.4;result = (ch / i) + (f * d) (f + i) ;Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.18賦值中的類型轉(zhuǎn)換在一個(gè)賦值語(yǔ)句中,如果賦值運(yùn)算符左側(cè)變量的類型和右側(cè)表達(dá)式的類型

19、不一致,則賦值時(shí)將進(jìn)行自動(dòng)類型轉(zhuǎn)換,將右側(cè)表達(dá)式的值轉(zhuǎn)換成左側(cè)變量的類型。int n;char ch;float f;double d;則執(zhí)行語(yǔ)句“ch=n;”后,整型變量的高位字節(jié)將被切掉;執(zhí)行語(yǔ)句“n=f;”后,n只接收f(shuō)的整數(shù)部分,相當(dāng)于取整運(yùn)算。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.19 3.3.2顯式轉(zhuǎn)換total/counter的運(yùn)算結(jié)果是整型數(shù);為了得到浮點(diǎn)值,使用類型轉(zhuǎn)換運(yùn)算符,形式為: (類型說(shuō)明符)表達(dá)式 或者

20、 (類型說(shuō)明符)(表達(dá)式),用于將表達(dá)式的運(yùn)算結(jié)果類型轉(zhuǎn)換為類型說(shuō)明符指定的數(shù)據(jù)類型; 類型轉(zhuǎn)換運(yùn)算(float)建立了操作數(shù)total的浮點(diǎn)值拷貝;存儲(chǔ)在total值的值仍然是一個(gè)整型值;思考:下面語(yǔ)句的效果 average = (float)(total/counter);使用類型轉(zhuǎn)換運(yùn)算符將高類型數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為低類型數(shù)據(jù)時(shí),會(huì)引起精度損失(例如浮點(diǎn)轉(zhuǎn)換成整型)或改變數(shù)據(jù)的值(例如long轉(zhuǎn)換成short)。int total=1230,counter=35;float average;average = (float)total/counter;顯式轉(zhuǎn)換Evaluation only.C

21、reated with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.20提綱3.1 一些常用的轉(zhuǎn)移序列3.2 再論C語(yǔ)言中的數(shù)據(jù)類型3.3 混合運(yùn)算時(shí)各種數(shù)據(jù)類型之間的轉(zhuǎn)換3.4 格式化輸出3.5 賦值運(yùn)算符3.6 自增和自減運(yùn)算符3.7 條件運(yùn)算符和逗號(hào)運(yùn)算符3.8 算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性詳見(jiàn)C程序設(shè)計(jì)教程 第9章,自學(xué)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-201

22、1 Aspose Pty Ltd.211.類型轉(zhuǎn)換字符d以帶符號(hào)的十進(jìn)制整數(shù)形式輸出??梢灾付ㄝ敵鰣?chǎng)寬(總位數(shù))和對(duì)齊方式(左對(duì)齊還是右對(duì)齊)。%5d:場(chǎng)寬為5,右對(duì)齊,左補(bǔ)空格。%-5d:場(chǎng)寬為5,左對(duì)齊,右補(bǔ)空格。若實(shí)際位數(shù)超出指定位數(shù),則按實(shí)際位數(shù)輸出假設(shè)有變量定義如下:int num1=123; long num2=123456需要程序運(yùn)行結(jié)果如下:num1=123,num1=123,num1=123,num1=123num2=123456,num2=123456,num2=123456 3.4 格式指示符Evaluation only.Created with Aspose.Slid

23、es for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.22 3.4 格式指示符則對(duì)應(yīng)的程序?yàn)椋?include#includemain()int num1=123; long num2=123456;printf(num1=%d,num1=%5d,num1=%-5d,num1=%dn, num1,num1,num1,num1);printf(num2=%ld,num2=%8ld,num2=%ldn,num2,num2, num2); system(“pause”); return 0; Evaluation only.Cre

24、ated with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.23 2. 類型轉(zhuǎn)換字符f以小數(shù)形式、按系統(tǒng)默認(rèn)的寬度,輸出單精度和雙精度實(shí)數(shù)。%f:默認(rèn)方式下輸出小數(shù)點(diǎn)后6位;如: 123.556000。%12f :總共占據(jù)12位(包括小數(shù)點(diǎn)),其中保留小數(shù)點(diǎn)后面6位。不足位左補(bǔ)零。若實(shí)際長(zhǎng)度超出指定場(chǎng)寬,按實(shí)際輸出。%12.2f :總共占據(jù)12位(包括小數(shù)點(diǎn)),其中保留小數(shù)點(diǎn)后面2位。不足位左補(bǔ)零,若超出則按實(shí)際輸出。%e:總共占據(jù)13位。如: 1.235560e+002,分尾數(shù)(1.23

25、5560)和指數(shù)(+002)兩部分。其中尾數(shù)占據(jù)8位(包括小數(shù)點(diǎn)),最高位不為0,小數(shù)點(diǎn)后面保留6位;指數(shù)占據(jù)4位,1位是符號(hào)位。 %12.2e:共占12位(包括小數(shù)點(diǎn)和e),其中尾數(shù)保留小數(shù)點(diǎn)后2位。指定輸出場(chǎng)寬、對(duì)齊方式、小數(shù)點(diǎn)后位數(shù)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.24main( ) float f=123.556; double d1,d2; d1=1111111111111.111111111; d2=2222222

26、222222.222222222; printf(%f, %12f, %12.2f, %-12.2f, %.2fn,f,f,f,f,f); printf(%e,%12e, %12.2e, %-12.2e, %.2en,f,f,f,f,f); printf(d1=%lfn, d1);/輸出為d1=1111111111111.111100 printf(d2=%lfn, d2);/輸出為d2=2222222222222.222200 printf(d1+d2=%fn,d1+d2); printf(d1+d2=%en,d1+d2); system(pause); 2. 類型轉(zhuǎn)換字符f以小數(shù)形式、按系

27、統(tǒng)默認(rèn)的寬度,輸出單精度和雙精度實(shí)數(shù)。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.25程序運(yùn)行結(jié)果如下:123.556000,123.556000,123.56,123.56,123.561.235560e+002, 1.235560e+002, 1.24e+002,1.24e+002 ,1.24e+002d1=1111111111111.111100d2=2222222222222.222200d1+d2=3333333333333.

28、333000d1+d2=3.333333e+012Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.26 main() char c=A; int i=65; printf(c=%c,%5c,%dn,c,c,c); printf(i=%d,%c,i,i); 程序運(yùn)行結(jié)果如下: c=A,A,65 i=65,A 3. 類型轉(zhuǎn)換字符c輸出一個(gè)字符 在C語(yǔ)言中,整數(shù)可以用字符形式輸出,字符數(shù)據(jù)也可以用整數(shù)形式輸出。將整數(shù)用字符形式輸出時(shí),系統(tǒng)首先求該

29、數(shù)與256的余數(shù),然后將余數(shù)作為ASCII碼,轉(zhuǎn)換成相應(yīng)的字符輸出。假設(shè)i的值為65+256,則用%c輸出的是AEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.27提綱3.1 一些常用的轉(zhuǎn)移序列3.2 再論C語(yǔ)言中的數(shù)據(jù)類型3.3 混合運(yùn)算時(shí)各種數(shù)據(jù)類型之間的轉(zhuǎn)換3.4 格式化輸出3.5 賦值運(yùn)算符3.6 自增和自減運(yùn)算符3.7 條件運(yùn)算符和逗號(hào)運(yùn)算符3.8 算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性Evaluation only.Created with

30、 Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.283.5 賦值運(yùn)算符=+=、-=、*=、/=和%=c+=3等價(jià)于c=c+3;i/=(j-1)等價(jià)于i=i/(j-1);變量=變量 運(yùn)算符 表達(dá)式 可寫(xiě)成: 變量 運(yùn)算符=表達(dá)式Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.29提綱3.1 一些常用的轉(zhuǎn)移序列3.2 再論C語(yǔ)言中的數(shù)據(jù)類型3.3

31、 混合運(yùn)算時(shí)各種數(shù)據(jù)類型之間的轉(zhuǎn)換3.4 格式化輸出3.5 賦值運(yùn)算符3.6 自增和自減運(yùn)算符3.7 條件運(yùn)算符和逗號(hào)運(yùn)算符3.8 算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.303.6 自加和自減運(yùn)算符運(yùn)算符表達(dá)式范例功能描述+-+aa+-bb-先將a加1,然后把a(bǔ)的新值用在出現(xiàn)變量a的表達(dá)式中在出現(xiàn)變量a的表達(dá)式中使用a的當(dāng)前值,然后將a加1先將b減1,然后把b的新值用在出現(xiàn)變量b的表達(dá)式中在出現(xiàn)變量b的表

32、達(dá)式中使用b的當(dāng)前值,然后將b減1+a:前置自增運(yùn)算符-a:前置自減運(yùn)算符a +:后置自增運(yùn)算符a-:后置自減運(yùn)算符編譯帶有自加(自減)運(yùn)算符的表達(dá)式(如i+)比編譯等價(jià)的展開(kāi)的表達(dá)式( i = i + 1)快,因?yàn)榈谝粋€(gè)表達(dá)式中的i只分析了一次,而第二個(gè)表達(dá)式中的i被分析了兩次。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.313.6 自加和自減運(yùn)算符如:以下兩條語(yǔ)句效果相同i; i;設(shè)i當(dāng)前值為5,則他以下兩條語(yǔ)句效果不同if(i+5

33、) /先判斷i5,然后i值加1 if (+i5) /先將i值加1,然后判斷i5當(dāng)自增或自減變量值的運(yùn)算本身就構(gòu)成了一條語(yǔ)句時(shí),把自增或自減運(yùn)算符放在變量前和放在變量后的效果是一樣的。只有當(dāng)變量出現(xiàn)在大型表達(dá)式的上下文中時(shí),前置和后置自增或自減運(yùn)算符才有區(qū)別。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.323.6 自加和自減運(yùn)算符main() int i;i = 5;if(i+ 5) printf(i=%d,i+5 is truen,i)

34、;printf(i=%dn,i);i = 5;if(+i 5) printf(i=%d,+i5 is truen,i);printf(i=%dn,i); system(pause); i=6i=6,+i5 is truei=6請(qǐng)按任意鍵繼續(xù) . . .判斷i5,然后i值加1i值先加1,然后判斷i5Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.333.6 自加和自減運(yùn)算符main() int i;i = 5;if(i+ 4) printf(

35、i=%d,i+4 is truen,i);printf(i=%dn,i);i = 5;if(+i 5) printf(i=%d,+i5 is truen,i);printf(i=%dn,i); system(pause); i=6,i+4 is truei=6i=6,+i5 is truei=6請(qǐng)按任意鍵繼續(xù) . . .將5改成4Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.343.6 自加和自減運(yùn)算符測(cè)試:y = 2; n = 3; n

36、extnum = (+y + n+)*6;num=y+n; 求nextnum 和num的值?nextnum值為36,num值為7Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.35 自增和自減運(yùn)算符的操作數(shù)只能是一個(gè)簡(jiǎn)單的變量名,而不能是常量或者表達(dá)式。5+, +(i+1)都是錯(cuò)誤的寫(xiě)法! ANSI沒(méi)有規(guī)定運(yùn)算符操作數(shù)的計(jì)算順序,因此如果在一條語(yǔ)句中將特定變量自增或自減不止一次時(shí),程序員應(yīng)該盡量避免使用自增或自減運(yùn)算符。如: (i+)+(i

37、+)+(i+)。3.6 自加和自減運(yùn)算符Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.36提綱3.1 一些常用的轉(zhuǎn)移序列3.2 再論C語(yǔ)言中的數(shù)據(jù)類型3.3 混合運(yùn)算時(shí)各種數(shù)據(jù)類型之間的轉(zhuǎn)換3.4 格式化輸出3.5 賦值運(yùn)算符3.6 自增和自減運(yùn)算符3.7 條件運(yùn)算符和逗號(hào)運(yùn)算符3.8 算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性Evaluation only.Created with Aspose.Slides for .NET 3.5 Client P

38、ro.Copyright 2004-2011 Aspose Pty Ltd.37條件運(yùn)算符 ? :(C語(yǔ)言唯一的三目運(yùn)算符)條件表達(dá)式 含有條件運(yùn)算符的表達(dá)式 執(zhí)行過(guò)程 先求表達(dá)式1的值,若值為非0(為真),則計(jì)算表達(dá)式2的值作為條件表達(dá)式的值;若值為0(為假),則計(jì)算表達(dá)式3的值作為條件表達(dá)式的值。 ch=(ch=A & ch=A & ch 4000 & residency 4000 和residency 4000 & residency 5的值,接著求出條件表達(dá)式的值,最后進(jìn)行賦值運(yùn)算。Evaluation only.Created with Aspose.Slides for .NET

39、3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.42高低單目運(yùn)算符 高于 算術(shù)運(yùn)算符 高于 關(guān)系運(yùn)算符 高于 邏輯運(yùn)算符 高于 條件運(yùn)算符 高于 賦值運(yùn)算符 高于 逗號(hào)運(yùn)算符運(yùn)算符優(yōu)先級(jí)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro.Copyright 2004-2011 Aspose Pty Ltd.43printf(“-a+ = %dn”,-a+) ; -和+優(yōu)先級(jí)相同,怎么計(jì)算?結(jié)合性:當(dāng)一個(gè)操作數(shù)兩側(cè)的運(yùn)算符具有相同的優(yōu)先級(jí)時(shí),該操作數(shù)是先與左邊的運(yùn)算符結(jié)合,還是先與右邊的運(yùn)算符結(jié)合。如: -a+是相當(dāng)于-(a+)還是(-a)+ ?從右向左結(jié)合性:當(dāng)一個(gè)操作數(shù)兩側(cè)的運(yùn)算符具有相同的優(yōu)先級(jí),且這兩個(gè)運(yùn)

溫馨提示

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