程序設(shè)計(jì)初步數(shù)據(jù)類(lèi)型新實(shí)用教案_第1頁(yè)
程序設(shè)計(jì)初步數(shù)據(jù)類(lèi)型新實(shí)用教案_第2頁(yè)
程序設(shè)計(jì)初步數(shù)據(jù)類(lèi)型新實(shí)用教案_第3頁(yè)
程序設(shè)計(jì)初步數(shù)據(jù)類(lèi)型新實(shí)用教案_第4頁(yè)
程序設(shè)計(jì)初步數(shù)據(jù)類(lèi)型新實(shí)用教案_第5頁(yè)
已閱讀5頁(yè),還剩82頁(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、l 主要(zhyo)內(nèi)容2.1 C+2.1 C+語(yǔ)言的數(shù)據(jù)語(yǔ)言的數(shù)據(jù)(shj)(shj)類(lèi)型類(lèi)型2.2 2.2 常量與變量常量與變量2.3 2.3 整型數(shù)據(jù)整型數(shù)據(jù)(shj)(shj)2.4 2.4 浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)(shj)(shj)2.5 2.5 字符型數(shù)據(jù)字符型數(shù)據(jù)(shj) (shj) 2.62.6布爾型數(shù)據(jù)布爾型數(shù)據(jù)(shj)(shj)第1頁(yè)/共86頁(yè)第一頁(yè),共87頁(yè)。l 主要(zhyo)內(nèi)容2.7 2.7 各類(lèi)數(shù)值各類(lèi)數(shù)值(shz)(shz)型數(shù)據(jù)間的混合運(yùn)算型數(shù)據(jù)間的混合運(yùn)算 2.8 2.8 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式 第2頁(yè)/共86頁(yè)第二頁(yè),共87頁(yè)。 2.1 C+的數(shù)據(jù)

2、類(lèi)型C+語(yǔ)言(yyn)提供了以下一些數(shù)據(jù)類(lèi)型。 布爾型數(shù)據(jù)第3頁(yè)/共86頁(yè)第三頁(yè),共87頁(yè)。 2.2 常量(chngling)與變量 2.2.1 2.2.1 常量常量在程序運(yùn)行過(guò)程在程序運(yùn)行過(guò)程(guchng)(guchng)中中, ,其值不能被改其值不能被改變的量稱(chēng)為常量變的量稱(chēng)為常量常量區(qū)分為不同的類(lèi)型:常量區(qū)分為不同的類(lèi)型:整型 100,125,-100,0實(shí)型 3.14 , 0.125,-3.789字符(z f)型 a, b,2符號(hào)常量為了使用方便,可用一個(gè)符號(hào)名來(lái)代表一個(gè)常量。第4頁(yè)/共86頁(yè)第四頁(yè),共87頁(yè)。例例2.1在程序中使用符號(hào)在程序中使用符號(hào)(fho)常量常量 #defin

3、e PRICE 30#include void main ( ) int num, total; num=10; total=num * PRICE; printf(total=%dn,total); 運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)果:結(jié)果: total=300total=300如再用賦值語(yǔ)句給PRICE賦值是錯(cuò)的PRICE=40;/ /* * 錯(cuò)誤,不能給符號(hào)常量賦不能對(duì)符號(hào)常量指定類(lèi)型int PRICE; / /* * 錯(cuò)誤,PRICEPRICE不是變量,不能指定類(lèi)型 * */ / 第5頁(yè)/共86頁(yè)第五頁(yè),共87頁(yè)。 2.2 常量(chngling)與變量 2.2.2 2.2.2變

4、量變量在程序運(yùn)行過(guò)程在程序運(yùn)行過(guò)程(guchng)(guchng)中可以改變的量。中可以改變的量。變量變量 - b 第8頁(yè)/共86頁(yè)第八頁(yè),共87頁(yè)。 2.2 常量(chngling)與變量第9頁(yè)/共86頁(yè)第九頁(yè),共87頁(yè)。 2.3 整型數(shù)據(jù)(shj)2.3.12.3.1整型常量的表示形式整型常量的表示形式 整型常量即整常數(shù)。在整型常量即整常數(shù)。在+語(yǔ)言中,整常語(yǔ)言中,整常數(shù)數(shù)可用以下可用以下(yxi)(yxi)三種形式表示:三種形式表示:(1)(1)十進(jìn)制整數(shù)。十進(jìn)制整數(shù)。 如:如:123, -456123, -456,4 4。(2)(2)八進(jìn)制整數(shù)。以八進(jìn)制整數(shù)。以0 0頭的數(shù)是八進(jìn)制數(shù)。

5、頭的數(shù)是八進(jìn)制數(shù)。 如:如:01230123表示八進(jìn)制數(shù)表示八進(jìn)制數(shù)123123,等于十進(jìn)制,等于十進(jìn)制數(shù)數(shù)83,-01183,-011表示八進(jìn)制數(shù)表示八進(jìn)制數(shù)-11,-11,即十進(jìn)制數(shù)即十進(jìn)制數(shù)-9-9。第10頁(yè)/共86頁(yè)第十頁(yè),共87頁(yè)。 2.3 整型數(shù)據(jù)(shj)2.3.12.3.1整型常量的表示整型常量的表示(biosh)(biosh)形式形式(3)(3)十六進(jìn)制整數(shù)。以十六進(jìn)制整數(shù)。以0 x0 x開(kāi)頭的數(shù)是開(kāi)頭的數(shù)是1616進(jìn)制進(jìn)制數(shù)。數(shù)。 如:如:0 x1230 x123,代表,代表1616進(jìn)制數(shù)進(jìn)制數(shù)123,123,等于十等于十進(jìn)制數(shù)進(jìn)制數(shù) 291 291。 -0 x12 -0

6、x12等于十進(jìn)制數(shù)等于十進(jìn)制數(shù)1010。 2.3.2 2.3.2整型變量整型變量整型變量用來(lái)整型變量用來(lái)(yn li)(yn li)存放整型常量。整型變量存放整型常量。整型變量的基本類(lèi)型符為的基本類(lèi)型符為intint。C+C+語(yǔ)言中有以下語(yǔ)言中有以下3 3類(lèi)整型變量類(lèi)整型變量 :基本整型,短整:基本整型,短整型,長(zhǎng)整型。型,長(zhǎng)整型。第11頁(yè)/共86頁(yè)第十一頁(yè),共87頁(yè)。2.3 整型數(shù)據(jù)(shj) 2.3.2整型變量一般情況下,存儲(chǔ)整數(shù)時(shí)存儲(chǔ)單元中的第一個(gè)二進(jìn)位用來(lái)代表數(shù)值符號(hào),而在實(shí)際應(yīng)用中,變量的值常常是正的 ,所以存儲(chǔ)單元全部用來(lái)存儲(chǔ)數(shù)值本身(bnshn),此定義無(wú)符號(hào)整數(shù)。所以歸納起來(lái),

7、在C+語(yǔ)言中,可以定義和使用6種整型變量共六種有符號(hào)(fho)基本整型有符號(hào)(fho)短整型有符號(hào)(fho)長(zhǎng)整型無(wú)符號(hào)(fho)基本整型無(wú)符號(hào)(fho)短整型無(wú)符號(hào)(fho)長(zhǎng)整型(signed)int (signed)short (int )(signed) long (int)unsigned intunsigned short (int)unsigned long (int) 注意:注意:括號(hào)表示其中的內(nèi)容是可選的.第12頁(yè)/共86頁(yè)第十二頁(yè),共87頁(yè)。 2.3 整型數(shù)據(jù)(shj) 2.3.2整型變量 整數(shù)類(lèi)型的有關(guān)(yugun)數(shù)據(jù):第13頁(yè)/共86頁(yè)第十三頁(yè),共87頁(yè)。例例2.2

8、整型變量的定義與使用整型變量的定義與使用#include void main()() int a,b,c,d; /*指定指定(zhdng)、為整型變量、為整型變量* unsigned *指定指定(zhdng)為無(wú)為無(wú)符號(hào)整型變量符號(hào)整型變量* 12;-24;10; ; printf(,);,); 運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)果:結(jié)果: , 第14頁(yè)/共86頁(yè)第十四頁(yè),共87頁(yè)。 2.3 整型數(shù)據(jù) 2.3.3整型數(shù)據(jù)在內(nèi)存中的存放(cnfng)形式 數(shù)據(jù)在內(nèi)存中以二進(jìn)制形式(xngsh)存放。 如: int i; /* 定義為整型變量 */ i=10; /* 給i賦以整數(shù)10 */ i

9、 i (a) (b)0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 010第15頁(yè)/共86頁(yè)第十五頁(yè),共87頁(yè)。 2.3 整型數(shù)據(jù) 2.3.3整型數(shù)據(jù)在內(nèi)存中的存放(cnfng)形式 實(shí)際上,數(shù)值是以補(bǔ)碼表示的。一個(gè)(y )正整數(shù)的補(bǔ)碼和該數(shù)的原碼相同。負(fù)數(shù)的補(bǔ)碼是:將該數(shù)的絕對(duì)值的二進(jìn)制形式,按位取反再加1。 10的原碼 (a) 取反 (b) 得-10的補(bǔ)碼 (c) 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 01 1 11 1 1 1 1 1 1 1 1 0 10 11 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0第16頁(yè)/共86頁(yè)第十六頁(yè),共87

10、頁(yè)。例例2.3 整型數(shù)據(jù)整型數(shù)據(jù)(shj)的溢出的溢出#include void main()int a,b; a=32767; b=a+1; printf(“%d,%dn”,a,b);運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)果:結(jié)果: 32767,-3276832767,-32768 如果系統(tǒng)給一個(gè)整型變量分配2個(gè)字節(jié),則變量的最大允許值為32767,若超出最大值則出現(xiàn)溢出現(xiàn)象。 第17頁(yè)/共86頁(yè)第十七頁(yè),共87頁(yè)。 2.3 整型數(shù)據(jù)(shj) 2.3.5 2.3.5 整型常量的類(lèi)型整型常量的類(lèi)型 整型變量的分類(lèi)規(guī)則:整型變量的分類(lèi)規(guī)則: (1) (1)一個(gè)整數(shù),如果其值在一個(gè)整數(shù),如果其值

11、在-32768-32768+32767+32767范范圍內(nèi),認(rèn)為圍內(nèi),認(rèn)為(rnwi)(rnwi)它是它是intint型,它可以賦值型,它可以賦值給給intint型和型和long intlong int型變量。型變量。 (2) (2) 一個(gè)整數(shù),如果其值超過(guò)了上述范圍,而一個(gè)整數(shù),如果其值超過(guò)了上述范圍,而在在-2147483637-2147483637+2147483647+2147483647范圍內(nèi),則認(rèn)為范圍內(nèi),則認(rèn)為(rnwi)(rnwi)它是為長(zhǎng)整型。可以將它賦值給一個(gè)它是為長(zhǎng)整型。可以將它賦值給一個(gè)long intlong int型變量。型變量。 第18頁(yè)/共86頁(yè)第十八頁(yè),共87

12、頁(yè)。 2.3 整型數(shù)據(jù)(shj) 2.3.5 2.3.5 整型常量的類(lèi)型整型常量的類(lèi)型 (3) (3) 在一個(gè)整常量后面加一個(gè)字母在一個(gè)整常量后面加一個(gè)字母l l或或L L,則認(rèn),則認(rèn)為是為是long intlong int型常量,例如型常量,例如123l123l、432L432L、0L0L等等,這往往用于函數(shù)調(diào)用中。如果函數(shù)的形參為,這往往用于函數(shù)調(diào)用中。如果函數(shù)的形參為long intlong int型,則要求實(shí)參也為型,則要求實(shí)參也為long intlong int型。型。 (4) (4) 一個(gè)整常量后面加一個(gè)字母一個(gè)整常量后面加一個(gè)字母u u或或U U,認(rèn)為是,認(rèn)為是unsigned

13、intunsigned int型,如型,如12345u12345u在內(nèi)存中按在內(nèi)存中按unsigned intunsigned int規(guī)定的方式存放規(guī)定的方式存放( (存儲(chǔ)單元中最存儲(chǔ)單元中最高位不作為符號(hào)高位不作為符號(hào)(fho)(fho)位,而用來(lái)存儲(chǔ)數(shù)據(jù)位,而用來(lái)存儲(chǔ)數(shù)據(jù)) )。第19頁(yè)/共86頁(yè)第十九頁(yè),共87頁(yè)。 2.4 浮點(diǎn)型數(shù)據(jù)(shj) 2.4.1 2.4.1浮點(diǎn)型常量的表示(biosh)(biosh)形式兩種表示形式(xngsh)十進(jìn)制小數(shù)指數(shù)0.1230.1233 3e-3e-3注意注意: :字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù) 第20頁(yè)/共86頁(yè)第二十頁(yè),

14、共87頁(yè)。 2.4 浮點(diǎn)型數(shù)據(jù)(shj) 2.4.1 2.4.1浮點(diǎn)型常量的表示形式浮點(diǎn)型常量的表示形式 規(guī)范化的指數(shù)形式:規(guī)范化的指數(shù)形式: 在字母在字母e e(或(或E E)之前)之前(zhqin)(zhqin)的小數(shù)部分中的小數(shù)部分中,小數(shù)點(diǎn)左邊,小數(shù)點(diǎn)左邊應(yīng)有一位(且只能有一位)非零的數(shù)字應(yīng)有一位(且只能有一位)非零的數(shù)字. . 例如例如: 123.456: 123.456可以表示為:可以表示為: 123.456e0, 12.3456e1, 1.23456e2, 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00

15、123456e0.123456e3, 0.0123456e4, 0.00123456e 其中的其中的1.23456e31.23456e3稱(chēng)為稱(chēng)為“規(guī)范化的指數(shù)形式規(guī)范化的指數(shù)形式”。第21頁(yè)/共86頁(yè)第二十一頁(yè),共87頁(yè)。 2.4 浮點(diǎn)型數(shù)據(jù)(shj) 2.4.2 2.4.2 浮點(diǎn)型變量浮點(diǎn)型變量 1 1)浮點(diǎn)型變量分為)浮點(diǎn)型變量分為(fn wi)(fn wi)單精度(單精度(floatfloat型)、雙精度(型)、雙精度(doubledouble型)和長(zhǎng)雙精型)和長(zhǎng)雙精度型(度型(long doublelong double)三類(lèi)形式。)三類(lèi)形式。第22頁(yè)/共86頁(yè)第二十二頁(yè),共87頁(yè)。

16、2.4 浮點(diǎn)型數(shù)據(jù)(shj) 2.4.2 浮點(diǎn)型變量 2)浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式: 一個(gè)浮點(diǎn)型數(shù)據(jù)一般在內(nèi)存中占4個(gè)字節(jié)(32位)。與整型數(shù)據(jù)的存儲(chǔ)方式不同,浮點(diǎn)型數(shù)據(jù)是按照指數(shù)形式存儲(chǔ)的。系統(tǒng)把一個(gè)浮點(diǎn)型數(shù)據(jù)分成(fn chn)小數(shù)部分和指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。第23頁(yè)/共86頁(yè)第二十三頁(yè),共87頁(yè)。3)浮點(diǎn)型數(shù)據(jù)的舍入誤差)浮點(diǎn)型數(shù)據(jù)的舍入誤差:由于浮點(diǎn)型變量是由有限由于浮點(diǎn)型變量是由有限(yuxin)的存儲(chǔ)單元組成的,因此能提供的有效數(shù)字總是有限的存儲(chǔ)單元組成的,因此能提供的有效數(shù)字總是有限(yuxin)的。在有效位以外的數(shù)字將被舍去。由此可能的。在有效位

17、以外的數(shù)字將被舍去。由此可能會(huì)產(chǎn)生一些誤差會(huì)產(chǎn)生一些誤差例例2.4 浮點(diǎn)型數(shù)據(jù)的舍入誤差浮點(diǎn)型數(shù)據(jù)的舍入誤差#include void main()float a,b; a = 123456.789e5; b = a + 20 ; printf(“%fn”,b); 運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)果:結(jié)果: 123456.789e5123456.789e5 2.4.2 2.4.2 浮點(diǎn)型變量浮點(diǎn)型變量第24頁(yè)/共86頁(yè)第二十四頁(yè),共87頁(yè)。 .4 浮點(diǎn)型數(shù)據(jù)(shj).4.3 .4.3 浮點(diǎn)型常量浮點(diǎn)型常量(chngling)(chngling)的類(lèi)型的類(lèi)型 C+ C+編譯系統(tǒng)將浮點(diǎn)型常

18、量編譯系統(tǒng)將浮點(diǎn)型常量(chngling)(chngling)作為雙精度來(lái)作為雙精度來(lái)處理。處理。 例如:例如:f = 2.45678 f = 2.45678 * * 4523.65 4523.65 系統(tǒng)先把系統(tǒng)先把2.456782.45678和和4523.654523.65作為雙精度數(shù),然后進(jìn)行作為雙精度數(shù),然后進(jìn)行相乘的運(yùn)算,得到的乘也是一個(gè)雙精度數(shù)。相乘的運(yùn)算,得到的乘也是一個(gè)雙精度數(shù)。如果把一個(gè)浮點(diǎn)型常量如果把一個(gè)浮點(diǎn)型常量(chngling)(chngling)賦給一個(gè)單精度賦給一個(gè)單精度變量變量f f系統(tǒng)給出警告,警告不影響連接和運(yùn)行最后結(jié)系統(tǒng)給出警告,警告不影響連接和運(yùn)行最后結(jié)果

19、但只取其結(jié)果前果但只取其結(jié)果前7 7位賦給浮點(diǎn)型變量位賦給浮點(diǎn)型變量f f。如是在數(shù)的后面加字母如是在數(shù)的后面加字母f f或或F F(如(如1.65f, 654.87F1.65f, 654.87F),),編譯系統(tǒng)就會(huì)把它們按單精度處理。編譯系統(tǒng)就會(huì)把它們按單精度處理。第25頁(yè)/共86頁(yè)第二十五頁(yè),共87頁(yè)。 .5 字符(z f)型數(shù)據(jù) .5.1 .5.1 字符常量字符常量(chngling)(chngling)(1)(1)用單引號(hào)包含的一個(gè)字符是字符型常量用單引號(hào)包含的一個(gè)字符是字符型常量(chngling)(chngling)(2)(2)只能包含一個(gè)字符只能包含一個(gè)字符a a, ,A A,

20、, 1 1abcabc、“a a”第26頁(yè)/共86頁(yè)第二十六頁(yè),共87頁(yè)。 2.5 字符型數(shù)據(jù)(shj) .5.1 字符常量 有些以“”開(kāi)頭(ki tu)的特殊字符稱(chēng)為轉(zhuǎn)義字符 含 義 ASCII代碼 換行,將當(dāng)前位置移到下一行開(kāi)頭 10 水平制表(跳到下一個(gè)Tab位置) 9 退格,將當(dāng)前位置移到前一列 8 回車(chē),將當(dāng)前位置移到本行開(kāi)頭 13 換頁(yè),將當(dāng)前位置移到下頁(yè)開(kāi)頭 12 a 發(fā)出鈴聲 7 代表一個(gè)反斜杠字符“”92 代表一個(gè)單撇號(hào)字符 39 代表一個(gè)雙撇號(hào)字符34 到位八進(jìn)制數(shù)所代表的字符 到位十六進(jìn)制數(shù)所代表的字符 第27頁(yè)/共86頁(yè)第二十七頁(yè),共87頁(yè)。例例2.5 轉(zhuǎn)義字符的使用轉(zhuǎn)

21、義字符的使用(shyng)#include void ()() ( ab ct derftgn); printf(htibbj kn); 打印機(jī)上的顯示打印機(jī)上的顯示(xinsh)(xinsh)結(jié)果:結(jié)果: fab c gde fab c gde h jik h jik 顯示屏上的運(yùn)行顯示屏上的運(yùn)行(ynxng)(ynxng)結(jié)果:結(jié)果: f gde f gde j k j k第28頁(yè)/共86頁(yè)第二十八頁(yè),共87頁(yè)。 2.5 字符(z f)型數(shù)據(jù) 2.5.2字符變量(binling)字符型變量(binling)用來(lái)存放字符常量,注意只能放一個(gè)字符。字符變量(binling)的定義形式如下:ch

22、ar c1,c2;在本函數(shù)中可以用下面語(yǔ)句對(duì)c1,c2賦值: c1a;c2 b ;一個(gè)字符變量(binling)在內(nèi)存中占一個(gè)字節(jié)。 第29頁(yè)/共86頁(yè)第二十九頁(yè),共87頁(yè)。 2.5 字符(z f)型數(shù)據(jù) 2.5.3 2.5.3 字符數(shù)據(jù)在內(nèi)存字符數(shù)據(jù)在內(nèi)存(ni cn)(ni cn)中的存儲(chǔ)形式及中的存儲(chǔ)形式及其使用方法其使用方法字符變量中存放的是字符的字符變量中存放的是字符的ASCIIASCII碼,這樣和部分碼,這樣和部分intint數(shù)據(jù)通用。數(shù)據(jù)通用。注意: 字符數(shù)據(jù)可以(1)%c形式輸出 (2) %d形式輸出 (3)可以與int數(shù)據(jù)進(jìn)行(jnxng)運(yùn)算第30頁(yè)/共86頁(yè)第三十頁(yè),共8

23、7頁(yè)。例例2.6 2.6 向字符變量賦予向字符變量賦予(fy)(fy)整數(shù)。整數(shù)。 #include #include void main()void main() char c1,c2; char c1,c2; c1=97; c1=97; c2=98; c2=98; printf(“%c %cn”,c1,c2); printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); printf(“%d %dn”,c1,c2); 運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)結(jié)果:果: 97 98 97 98第31頁(yè)/共86頁(yè)第三十一頁(yè),共87頁(yè)。例例2.7 2.7 大小寫(xiě)

24、字母的轉(zhuǎn)換大小寫(xiě)字母的轉(zhuǎn)換(zhunhun) (zhunhun) #include #include void main()void main() char c1,c2 char c1,c2; c1=a; c1=a; c2=b; c2=b; c1=c1-32; c1=c1-32; c2=c2-32; c2=c2-32; printf(“ printf(“c c cc,c1,c2c1,c2);); 運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)結(jié)果:果: 第32頁(yè)/共86頁(yè)第三十二頁(yè),共87頁(yè)。 2.5 字符型數(shù)據(jù)(shj) 2.5.3 字符數(shù)據(jù)(shj)在內(nèi)存中的存儲(chǔ)形式及其使用方法第33頁(yè)/共86頁(yè)

25、第三十三頁(yè),共87頁(yè)。 2.5 字符(z f)型數(shù)據(jù) 2.5.4 2.5.4 字符字符(z f)(z f)串常量串常量字符字符(z f)(z f)串常量是一對(duì)雙撇號(hào)括起來(lái)的字符串常量是一對(duì)雙撇號(hào)括起來(lái)的字符(z f)(z f)序列序列. .合法的字符合法的字符(z f)(z f)串常量串常量: :“How do you do.”, “CHINA”“How do you do.”, “CHINA”, “a” “a” , “$123.45” “$123.45”可以輸出一個(gè)字符可以輸出一個(gè)字符(z f)(z f)串,如串,如printf(“How do you do.”)printf(“How do

26、 you do.”);第34頁(yè)/共86頁(yè)第三十四頁(yè),共87頁(yè)。 2.5 字符型數(shù)據(jù)(shj) 2.5.4 字符串常量 是字符常量, “a”是字符串常量,二者不同。 如:假設(shè)(jish)被指定為字符變量 :char c c= a; “a” ;c “CHINA”; 結(jié)論:不能把一個(gè)(y )字符串常量賦給一個(gè)(y )字符變量。第35頁(yè)/共86頁(yè)第三十五頁(yè),共87頁(yè)。 +規(guī)定:在每一個(gè)字符串常量的結(jié)尾加一個(gè) “字符 串結(jié)束(jish)標(biāo)志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束(jish)。 +規(guī)定以字符作為字符串結(jié)束(jish)標(biāo)志。 如:如果有一個(gè)(y )字符串常量” ,實(shí)際上在內(nèi)存中是:CHINA0

27、它占內(nèi)存(ni cn)單元不是個(gè)字符,而是個(gè)字符,最后一個(gè)字符為。但在輸出時(shí)不輸出。 2.5 字符型數(shù)據(jù) 2.5.4 字符串常量第36頁(yè)/共86頁(yè)第三十六頁(yè),共87頁(yè)。q2.6布爾型數(shù)據(jù)qboolq值為true和falseq可以當(dāng)作整數(shù)用( true一般為1,false為0)q把其它類(lèi)型(lixng)的值轉(zhuǎn)換為布爾值時(shí),非零值轉(zhuǎn)換為true,零值轉(zhuǎn)換為false第37頁(yè)/共86頁(yè)第三十七頁(yè),共87頁(yè)。 2.7 各類(lèi)數(shù)值(shz)型數(shù)據(jù)間的混合運(yùn)算 混合運(yùn)算:整型(包括int,short,long)、浮點(diǎn)型(包括float,double)可以混合運(yùn)算。在進(jìn)行運(yùn)算時(shí),不同類(lèi)型(lixng)的數(shù)據(jù)要

28、先轉(zhuǎn)換成同一類(lèi)型(lixng),然后進(jìn)行運(yùn)算.說(shuō)明(shumng): 這種類(lèi)型轉(zhuǎn)換是由系統(tǒng)自動(dòng)進(jìn)行的。1.1.隱式類(lèi)型轉(zhuǎn)換隱式類(lèi)型轉(zhuǎn)換第38頁(yè)/共86頁(yè)第三十八頁(yè),共87頁(yè)。2. 2. 強(qiáng)制強(qiáng)制(qingzh)(qingzh)類(lèi)型轉(zhuǎn)換運(yùn)算符類(lèi)型轉(zhuǎn)換運(yùn)算符 可以利用強(qiáng)制可以利用強(qiáng)制(qingzh)(qingzh)類(lèi)型轉(zhuǎn)換運(yùn)算符將一個(gè)類(lèi)型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式表達(dá)式轉(zhuǎn)換成所需類(lèi)型。轉(zhuǎn)換成所需類(lèi)型。 一般形式一般形式: :(類(lèi)型名)(表達(dá)式)(類(lèi)型名)(表達(dá)式)說(shuō)明: 表達(dá)式應(yīng)該用括號(hào)括起來(lái)(q li)。 在強(qiáng)制類(lèi)型轉(zhuǎn)換時(shí),得到一個(gè)所需類(lèi)型的中間變量,原來(lái)變量的類(lèi)型未發(fā)生變化。第39頁(yè)/共86頁(yè)第三

29、十九頁(yè),共87頁(yè)。例2.8 強(qiáng)制(qingzh)類(lèi)型轉(zhuǎn)換。 #include void main() float x; int i; x=3.6; i=(int)x; printf(x=%f, i=%dn,x,i); 運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)果:結(jié)果: x x3.6000003.600000, i=3 i=3第40頁(yè)/共86頁(yè)第四十頁(yè),共87頁(yè)。 2.8 運(yùn)算符和表達(dá)式 2.8.1 +運(yùn)算符和C+表達(dá)式簡(jiǎn)介 1. +語(yǔ)言(yyn)的運(yùn)算符有以下幾類(lèi):算術(shù)運(yùn)算符 (+ - * / %)關(guān)系運(yùn)算符 (?。┻壿嬤\(yùn)算符 (!|)位運(yùn)算符 ( |)賦值運(yùn)算符 (及其擴(kuò)展賦值運(yùn)算符)條件運(yùn)算

30、符 (?:)逗號(hào)運(yùn)算符 (,)第41頁(yè)/共86頁(yè)第四十一頁(yè),共87頁(yè)。(8)指針運(yùn)算符 (*和)(9)求字節(jié)數(shù)運(yùn)算符()(10)強(qiáng)制(qingzh)類(lèi)型轉(zhuǎn)換運(yùn)算符( (類(lèi)型) )(11)分量運(yùn)算符(-)(12)下標(biāo)運(yùn)算符()(13)其他 (如函數(shù)調(diào)用運(yùn)算符()第42頁(yè)/共86頁(yè)第四十二頁(yè),共87頁(yè)。2. C+語(yǔ)言的表達(dá)式有以下幾類(lèi):(1)算術(shù)表達(dá)式:如2+6.7*3.5+sin(0.5)(2)關(guān)系表達(dá)式:如x0,y0 & y0 (表示(biosh)x0與y0同時(shí)成立,&是邏輯運(yùn)算符,代表“與”)(4)賦值表達(dá)式:如a=5.6(5)逗號(hào)表達(dá)式:如a=3,y=4,z=8 第43頁(yè)/

31、共86頁(yè)第四十三頁(yè),共87頁(yè)。 2.8.2 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 1. 基本(jbn)的算術(shù)運(yùn)算符:* (如:結(jié)果為;-11/3 結(jié)果為-3) (如:的值為;11%-3結(jié)果為2)。第44頁(yè)/共86頁(yè)第四十四頁(yè),共87頁(yè)。2. 2. 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象( (也稱(chēng)操作也稱(chēng)操作(cozu)(cozu)數(shù))連接起來(lái)的、符合數(shù))連接起來(lái)的、符合+語(yǔ)法規(guī)則的式子,稱(chēng)為語(yǔ)法規(guī)則的式子,稱(chēng)為+算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、變量、算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、變量、函數(shù)等。函數(shù)等。 例如例如: : *

32、*.5.5aa 是一個(gè)合法的表達(dá)式是一個(gè)合法的表達(dá)式第45頁(yè)/共86頁(yè)第四十五頁(yè),共87頁(yè)。+語(yǔ)言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。 在表達(dá)式求值時(shí),先按運(yùn)算符的優(yōu)先級(jí)別高低(god)次序執(zhí)行,例如先乘除后加減。 +規(guī)定了各種運(yùn)算符的結(jié)合方向(結(jié)合性) 算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣摇保聪茸蠛笥?。第46頁(yè)/共86頁(yè)第四十六頁(yè),共87頁(yè)。 3. 3. 自增、自減運(yùn)算符自增、自減運(yùn)算符 作用是使變量作用是使變量(binling)(binling)的值增或減的值增或減如:如: ,(在使用之前,先使的值加,(在使用之前,先使的值加 (減)(減),(在使用之后,使的值加(,(在使用之后,使的值加( 減

33、)減) 第47頁(yè)/共86頁(yè)第四十七頁(yè),共87頁(yè)。i+i+與+i+i的區(qū)別: 是先執(zhí)行(zhxng)(zhxng)后,再使用的值; 是先使用的值后,再執(zhí)行(zhxng)(zhxng)。例如: ; i i的值先變成4, 4, 再賦給,j,j的值為 ; 先將 i i的值3 3賦給, ,的值為,然后變?yōu)榈?8頁(yè)/共86頁(yè)第四十八頁(yè),共87頁(yè)。注意: (1)自增運(yùn)算符(),自減運(yùn)算符(),只能用于變量,而不能用于常量或表達(dá)式, (2)和的結(jié)合方向是“自右至左”。 (3)自增(減)運(yùn)算符常用于循環(huán)語(yǔ)句中使循環(huán)變 量自動(dòng)加。也用于指針變量,使指針指向(zh xin)下一個(gè)地址。 (4)使用和時(shí) ,為避免二義

34、性,最好采取大家都能理解的寫(xiě)法,可以加一些“不必要”的括號(hào),如(i+)+j。第49頁(yè)/共86頁(yè)第四十九頁(yè),共87頁(yè)。2.8.3 關(guān)系(gun x)運(yùn)算和關(guān)系(gun x)表達(dá)式1.1.關(guān)系運(yùn)算符及其優(yōu)先次序關(guān)系運(yùn)算符及其優(yōu)先次序(cx)(cx) ( (小于小于) )= ( ( (大于大于) )= (= (大于或等于大于或等于) )= (= (等于等于) )!= (!= (不等于不等于) )優(yōu)先級(jí)相同(高)優(yōu)先級(jí)相同(高)優(yōu)先級(jí)相同(低)優(yōu)先級(jí)相同(低)說(shuō)明(shumng):關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符關(guān)系運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符第50頁(yè)/共86頁(yè)第五十頁(yè),共87頁(yè)。2.2.關(guān)系表達(dá)式關(guān)

35、系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)用關(guān)系運(yùn)算符將兩個(gè)(lin )(lin )表達(dá)式(可以是算術(shù)表達(dá)式或表達(dá)式(可以是算術(shù)表達(dá)式或 關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式)關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式) 接起來(lái)的式子,稱(chēng)關(guān)系表達(dá)式接起來(lái)的式子,稱(chēng)關(guān)系表達(dá)式例:例:ab,a+bb+c,(a=3)(b=5),ab)(bb,a+bb+c,(a=3)(b=5),ab)(bb”ab”的值為的值為“真真”,表達(dá)式的值為,表達(dá)式的值為1 1。第51頁(yè)/共86頁(yè)第五十一頁(yè),共87頁(yè)。2.8.4 邏輯(lu j)運(yùn)算符和邏輯(lu j)表達(dá)式1.1.邏輯運(yùn)算符及其優(yōu)先邏輯運(yùn)算符及其優(yōu)先(yuxi

36、n)(yuxin)次序次序& (& (邏輯與邏輯與) ) 相當(dāng)于其他語(yǔ)言中的相當(dāng)于其他語(yǔ)言中的ANDAND| (| (邏輯或邏輯或) ) 相當(dāng)于其他語(yǔ)言中的相當(dāng)于其他語(yǔ)言中的OROR! (! (邏輯非邏輯非) ) 相當(dāng)于其他語(yǔ)言中的相當(dāng)于其他語(yǔ)言中的NOTNOT例:例:a&b a&b 若若a,ba,b為真,則為真,則a&ba&b為真。為真。 a|b a|b 若若a,ba,b之一為真,則之一為真,則a|ba|b為真。為真。 !a a 若若a a為真,則為真,則!a!a為假。為假。優(yōu)先(yuxin)次序:!(非)-&()-|()邏輯運(yùn)算符中的

37、“&”和“|”低于關(guān)系運(yùn)算符,“!”高于算 術(shù)運(yùn)算符第52頁(yè)/共86頁(yè)第五十二頁(yè),共87頁(yè)。2.2.邏輯表達(dá)式邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的式子用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的式子(sh zi)(sh zi)就就 是邏輯表達(dá)式是邏輯表達(dá)式邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量“真真”或或“假假”。例:例:設(shè)設(shè)a=4a=4,b=5b=5:!a!a的值為的值為0 a&b0 a&b的值為的值為1 1a|ba|b的值為的值為1 !a|b1 !a|b的值為的值為1 14&0|24&0|2的值為的值為1 1任何非

38、零的數(shù)值任何非零的數(shù)值(shz)被認(rèn)作被認(rèn)作“真真”第53頁(yè)/共86頁(yè)第五十三頁(yè),共87頁(yè)。例:53&84-!0 自左向右運(yùn)算(yn sun) 1&0邏輯值為083邏輯值為1表達(dá)式值為0第54頁(yè)/共86頁(yè)第五十四頁(yè),共87頁(yè)。在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都要被執(zhí)行在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都要被執(zhí)行(zhxng)(zhxng)。(1)a&b&c (1)a&b&c 只有只有a a為真時(shí),才需要判斷為真時(shí),才需要判斷b b的值,只有的值,只有a a和和b b都為真時(shí),都為真時(shí), 才需要判斷才需要判斷c c的值。的值。

39、(2)a|b|c (2)a|b|c 只要只要a a為真,就不必判斷為真,就不必判斷b b和和c c的值,只有的值,只有a a為假,才為假,才 判斷判斷b b。a a和和b b都為假才判斷都為假才判斷c c 設(shè)a=1,b=2,c=3,d=4, m=1,n=1; 例:(m=ab)&(n=cd)第55頁(yè)/共86頁(yè)第五十五頁(yè),共87頁(yè)。 用邏輯表達(dá)式來(lái)表示閏年的條件能被4整除,但不能被100整除。能被4整除,又能被400整除答 (year%4=0&year%100!=0)|year%400=0案 值為真(1)是閏年(rnnin),否則為非閏年(rnnin)。第56頁(yè)/共86頁(yè)第五十六頁(yè)

40、,共87頁(yè)。 所謂位運(yùn)算(yn sun),是指對(duì)一個(gè)數(shù)據(jù)的某些二進(jìn)制位進(jìn)行的運(yùn)算(yn sun)。 規(guī)定最左邊一位為最高位: 位邏輯運(yùn)算(yn sun)符:按位非 按位與 & 按位或 | 按位異或 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0第57頁(yè)/共86頁(yè)第五十七頁(yè),共87頁(yè)。例 int x=31; 求x 0000000000011111 1111111111100000即:x= - 32例:int x=31;y=-5; 求x&y 0000000000011111& 1111111111111011 0000000000011011即:

41、x&y=27l按位非 0=1 1=0l 舉例(j l):按位與 0&0=0 0&1=0 1&0=0 1&1=1 舉例(j l):第58頁(yè)/共86頁(yè)第五十八頁(yè),共87頁(yè)?!鞍次慌c按位與”運(yùn)算運(yùn)算(yn sun)有如下一些有如下一些用途:用途:(1)將數(shù)據(jù)中的某些位清零)將數(shù)據(jù)中的某些位清零(2)測(cè)試指定位是)測(cè)試指定位是0還是還是1(3)獲得)獲得x指定位的值指定位的值例如:設(shè)X為一個(gè)字符型變量(8位二進(jìn)制位),判斷其最低位為0還是1只需:X & 0 x01 即可!X= x x x x x x x x & 0 0 0 0 0 0 0 1 0

42、 0 0 0 0 0 0 x例如:設(shè)X是unsigned類(lèi)型的整數(shù)(16位二進(jìn)制數(shù)),要求獲取X的低8位只需:X & 0 x00ff 即可!X= x x x x x x x x x x x x x x x x & 0 0 0 0 0 0 0 011 1 1 1 1 1 1 0 0 0 0 0 0 0 0 x x x x x x x x第59頁(yè)/共86頁(yè)第五十九頁(yè),共87頁(yè)。例:int x=31;y=-5; 求x | y 0000000000011111 | 1111111111111011 1111111111111111即:x | y=-1按位或 0|0=0 0|1=1 1|

43、0=1 1|1=1 舉例(j l):“按位或”運(yùn)算常用于對(duì)一個(gè)數(shù)據(jù)中的某些(mu xi)位置1。例如:將一個(gè)無(wú)符號(hào)整數(shù)X的第4位置1。只需: X | 0 x10 即可!X= x x x x x x x x x x x x x x x x | 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 x x x x x x x x x x x 1 x x x x第60頁(yè)/共86頁(yè)第六十頁(yè),共87頁(yè)。按位異或 00=0 01=1 10=1 11=0 舉例(j l):例:int x=31;y=-5; 求x y 0000000000011111 1111111111111011 11111111

44、11100100即:x | y=-28“按位異或”運(yùn)算(yn sun)有如下一些用途:(1)使數(shù)據(jù)中的某些位求反 該位與1異或即可(2)對(duì)變量清零 XX位位位位&| 01011100000101110110位邏輯(lu j)運(yùn)算符總結(jié):第61頁(yè)/共86頁(yè)第六十一頁(yè),共87頁(yè)。移位運(yùn)算符 左移運(yùn)算符 使用方式:運(yùn)算對(duì)象左移位數(shù) 功能:將運(yùn)算對(duì)象的每個(gè)二進(jìn)制位同時(shí)(tngsh)向左移動(dòng)制定的位數(shù),從左邊移出的高位部分被丟棄,低位部分用0補(bǔ)齊 左移1位相當(dāng)于該數(shù)乘以2?。▋H對(duì)移出的高位不含1的成立) eg. 642 0100 0000 左移2位得 0000 0000 左移比乘法元算快的多,有

45、些C+編譯程序自動(dòng)將乘2的運(yùn)算用左移1位來(lái)實(shí)現(xiàn),將乘2n的冪運(yùn)算處理為左移n位。例:設(shè) a=15; 求 a 使用方式:運(yùn)算對(duì)象左移位數(shù) 功能:將運(yùn)算對(duì)象的每個(gè)二進(jìn)制位同時(shí)向右移動(dòng)制定的位數(shù),從右邊移出的低位部分被丟棄。 對(duì)于無(wú)符號(hào)(fho)數(shù),左邊高位用0補(bǔ)齊; 對(duì)于有符號(hào)(fho)數(shù),正數(shù)左邊高位也是補(bǔ)0; 負(fù)數(shù)高位補(bǔ)0還是補(bǔ)1和具體的系統(tǒng)有關(guān)。 補(bǔ)0 稱(chēng)為:邏輯右移,補(bǔ)1稱(chēng)為:算數(shù)右移 例:設(shè) a=15; 求 a20000 0000 0000 1111 左移2位得:0000 0000 0000 0011 即十進(jìn)制的3例:設(shè)a=-50; 求 a2 a : 1111 1111 1100 111

46、0a1: 0111 1111 1110 0111 (邏輯右移(yu y))a1: 1111 1111 1110 0111 (算數(shù)右移(yu y))右移(yu y)1位相當(dāng)于除以2,右移(yu y)n位相當(dāng)于除以2n第63頁(yè)/共86頁(yè)第六十三頁(yè),共87頁(yè)。 2.8.6 逗號(hào)(duho)運(yùn)算符和逗號(hào)(duho)表達(dá)式逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符: :將兩個(gè)將兩個(gè)(lin )(lin )表達(dá)式連接起來(lái)表達(dá)式連接起來(lái), ,又稱(chēng)為又稱(chēng)為“順序求順序求值運(yùn)算符值運(yùn)算符”。 如:如:5 5, 一般(ybn)形式: 表達(dá)式,表達(dá)式求解過(guò)程:求解過(guò)程: 先求解表達(dá)式,再求解表達(dá)式。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式的值。 逗號(hào)

47、表達(dá)式 的值為14第64頁(yè)/共86頁(yè)第六十四頁(yè),共87頁(yè)。例:逗號(hào)例:逗號(hào)(duho)(duho)表達(dá)式表達(dá)式* *5 5,* * 一個(gè)逗號(hào)(duho)表達(dá)式又可以與另一個(gè)表達(dá)式組成一個(gè)新的逗號(hào)(duho)表達(dá)式。 如:(*,*),a+5 第65頁(yè)/共86頁(yè)第六十五頁(yè),共87頁(yè)。 逗號(hào)表達(dá)式的一般形式可以(ky)擴(kuò)展為 表達(dá)式,表達(dá)式,表達(dá)式,表達(dá)式 它的值為表達(dá)式的值。 逗號(hào)運(yùn)算符是所有(suyu)運(yùn)算符中級(jí)別最低的例: (,*) ,*3賦值表達(dá)式,將一個(gè)(y )逗號(hào)表達(dá)式的值賦給,的值等于 逗號(hào)表達(dá)式,包括一個(gè)賦值表達(dá)式和一個(gè)算術(shù)表達(dá)式,的值為,整個(gè)逗號(hào)表達(dá)式的值為18。 第66頁(yè)/共86

48、頁(yè)第六十六頁(yè),共87頁(yè)。注意: :并不是任何地方出現(xiàn)的逗號(hào)都是作為(zuwi)(zuwi)逗號(hào)運(yùn)算符。例如函數(shù)參數(shù)也是用逗號(hào)來(lái)間隔的。 如: printf(: printf(“%d,%d,%d%d,%d,%d”,a,b,c);,a,b,c);“,”并不是(b shi)一個(gè)逗號(hào)表達(dá)式,它是printf函數(shù)的3個(gè)參數(shù)printf(“%d,%d,%d”,(a,b,c),b,c) “(,)”是一個(gè)逗號(hào)(duho)表達(dá)式,它的值等于的值。 第67頁(yè)/共86頁(yè)第六十七頁(yè),共87頁(yè)。 2.8.7 賦值運(yùn)算(yn sun)和賦值表達(dá)式1.1.賦值運(yùn)算符賦值運(yùn)算符 = = 作用作用(zuyng)(zuyng):

49、給變量賦值:給變量賦值 eg. int a; eg. int a; a=100 a=100 第68頁(yè)/共86頁(yè)第六十八頁(yè),共87頁(yè)。. .復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符 在賦值符在賦值符“”之前加上其他之前加上其他(qt)(qt)運(yùn)算符,可以構(gòu)成運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符。復(fù)合的運(yùn)算符。 例:例:第69頁(yè)/共86頁(yè)第六十九頁(yè),共87頁(yè)。 可以這樣理解(lji): a += b (其中a為變量,b為表達(dá)式) a + = b(將有下劃線的“a+”移到“=”右側(cè)) | a = a + b(在“=”左側(cè)補(bǔ)上變量名a) 第70頁(yè)/共86頁(yè)第七十頁(yè),共87頁(yè)。 如果如果(rgu)(rgu)是包含若干項(xiàng)

50、的表達(dá)式,則相當(dāng)于它是包含若干項(xiàng)的表達(dá)式,則相當(dāng)于它有括號(hào)。有括號(hào)。 例:例: x %= y + 3 x %= y + 3 x %= (y + 3) x %= (y + 3) |_ |_ x = x %(y + 3) x = x %(y + 3) (不要錯(cuò)寫(xiě)成(不要錯(cuò)寫(xiě)成 x = x % y + 3 )x = x % y + 3 )第71頁(yè)/共86頁(yè)第七十一頁(yè),共87頁(yè)。第72頁(yè)/共86頁(yè)第七十二頁(yè),共87頁(yè)。3.3.賦值表達(dá)式賦值表達(dá)式 一般形式為:一般形式為: 變量變量 賦值運(yùn)算符賦值運(yùn)算符 表達(dá)式表達(dá)式注意注意(zh y)(zh y):并不是任何對(duì)象都可以作為:并不是任何對(duì)象都可以作為左

51、值的,表達(dá)式和常變量就不能作為左值。左值的,表達(dá)式和常變量就不能作為左值。任何左值都可做右值。任何左值都可做右值。第73頁(yè)/共86頁(yè)第七十三頁(yè),共87頁(yè)。 賦值表達(dá)式中的“表達(dá)式”,又可以(ky)是一個(gè)賦值表達(dá)式。 例:a=(b=5)分析(fnx)賦值表達(dá)式: (a=3*5)=4*3第74頁(yè)/共86頁(yè)第七十四頁(yè),共87頁(yè)。 賦值表達(dá)式也可以(ky)包含復(fù)合的賦值運(yùn)算符。 例: a+=a-=a*a (設(shè)a=12) 賦值表達(dá)式作為表達(dá)式的一種,不僅可以出現(xiàn)在賦值語(yǔ)句中,而且可以以表達(dá)式形式出現(xiàn)在其他語(yǔ)句(如輸出(shch)語(yǔ)句、循環(huán)語(yǔ)句等)中 。 例:printf(%d,a=b);第75頁(yè)/共86

52、頁(yè)第七十五頁(yè),共87頁(yè)。4 4 賦值過(guò)程賦值過(guò)程(guchng)(guchng)中的類(lèi)型轉(zhuǎn)換中的類(lèi)型轉(zhuǎn)換 如果賦值運(yùn)算符兩側(cè)的類(lèi)型一致如果賦值運(yùn)算符兩側(cè)的類(lèi)型一致(yzh),則直接進(jìn),則直接進(jìn)行賦值。行賦值。 例:例:i=6 (假設(shè)假設(shè)i已定義為已定義為int型型) 如果賦值運(yùn)算符兩側(cè)的類(lèi)型不一致如果賦值運(yùn)算符兩側(cè)的類(lèi)型不一致(yzh),但都是,但都是數(shù)值型或字符型時(shí),在賦值時(shí)要進(jìn)行類(lèi)型轉(zhuǎn)換。類(lèi)數(shù)值型或字符型時(shí),在賦值時(shí)要進(jìn)行類(lèi)型轉(zhuǎn)換。類(lèi)型轉(zhuǎn)換是系統(tǒng)自動(dòng)進(jìn)行的。型轉(zhuǎn)換是系統(tǒng)自動(dòng)進(jìn)行的。第76頁(yè)/共86頁(yè)第七十六頁(yè),共87頁(yè)。 轉(zhuǎn)換規(guī)則:轉(zhuǎn)換規(guī)則: 將浮點(diǎn)型數(shù)據(jù)(包括單、雙精度)賦給整型變量時(shí),

53、先對(duì)將浮點(diǎn)型數(shù)據(jù)(包括單、雙精度)賦給整型變量時(shí),先對(duì)浮點(diǎn)數(shù)取為整,然后賦予整型變量。浮點(diǎn)數(shù)取為整,然后賦予整型變量。 將整型數(shù)據(jù)賦給單、雙精度變量時(shí),數(shù)值不變,但以浮點(diǎn)將整型數(shù)據(jù)賦給單、雙精度變量時(shí),數(shù)值不變,但以浮點(diǎn)數(shù)形式存儲(chǔ)到變量中。數(shù)形式存儲(chǔ)到變量中。 將一個(gè)將一個(gè)doubledouble型數(shù)據(jù)賦給型數(shù)據(jù)賦給floatfloat變量時(shí),截取其前面變量時(shí),截取其前面7 7位位有效數(shù)字,存放到有效數(shù)字,存放到floatfloat變量的存儲(chǔ)單元變量的存儲(chǔ)單元(cn ch dn yun)(cn ch dn yun)(4 4個(gè)字節(jié))中。但應(yīng)注意數(shù)值范圍不能溢出;將一個(gè)個(gè)字節(jié))中。但應(yīng)注意數(shù)值范圍

54、不能溢出;將一個(gè)floatfloat型數(shù)據(jù)賦給型數(shù)據(jù)賦給doubledouble變量時(shí),數(shù)值不變,有效位數(shù)擴(kuò)展到變量時(shí),數(shù)值不變,有效位數(shù)擴(kuò)展到1616位,位,在內(nèi)存中以在內(nèi)存中以8 8個(gè)字節(jié)存儲(chǔ)。個(gè)字節(jié)存儲(chǔ)。第77頁(yè)/共86頁(yè)第七十七頁(yè),共87頁(yè)。 轉(zhuǎn)換規(guī)則:轉(zhuǎn)換規(guī)則: 字符型數(shù)據(jù)賦給整型變量時(shí),將字符的字符型數(shù)據(jù)賦給整型變量時(shí),將字符的ASCIIASCII碼賦給碼賦給整型變量。整型變量。 將一個(gè)占字節(jié)將一個(gè)占字節(jié)(z ji)(z ji)多的整型數(shù)據(jù)賦給一個(gè)占字多的整型數(shù)據(jù)賦給一個(gè)占字節(jié)節(jié)(z ji)(z ji)少的整型變量少的整型變量/ /字符變量時(shí),只將其低字節(jié)字符變量時(shí),只將其低字節(jié)(

55、z ji)(z ji)原封不動(dòng)地送到該變量原封不動(dòng)地送到該變量 例:例:i=289;i=289; / /* * 已定義已定義i i為為整型變量整型變量 * */ / c=a; c=a; / /* * 已定義已定義c c為字符為字符變量變量 * */ / c=i; / c=i; /* * 將一個(gè)占將一個(gè)占2 2字節(jié)字節(jié)(z ji)(z ji)的的intint型數(shù)據(jù)賦給型數(shù)據(jù)賦給charchar型變量型變量 * */ / i=289 i=289 c=33 c=33 將有符號(hào)整數(shù)賦值給長(zhǎng)度相同的將有符號(hào)整數(shù)賦值給長(zhǎng)度相同的 無(wú)符號(hào)整型變量時(shí),按字節(jié)無(wú)符號(hào)整型變量時(shí),按字節(jié)(z ji)(z ji)原樣

56、賦值。原樣賦值。0 0 0 0 0 0 0 10 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1證賦值后數(shù)值不會(huì)發(fā)生變化證賦值后數(shù)值不會(huì)發(fā)生變化。第78頁(yè)/共86頁(yè)第七十八頁(yè),共87頁(yè)。例例2.9 有符號(hào)整數(shù)賦值給無(wú)符號(hào)整型變量有符號(hào)整數(shù)賦值給無(wú)符號(hào)整型變量(binling),數(shù)據(jù)會(huì)失真。數(shù)據(jù)會(huì)失真。 #include void main ( ) unsigned a; /* 定義定義a為無(wú)符號(hào)整型變量為無(wú)符號(hào)整型變量(binling) */ int b; /* 定義定義b為有符號(hào)整型變量為有符號(hào)整型變量(binling) */ b=-1; b a=b; a printf(%un,a); 運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)果:結(jié)果:429496729542949

溫馨提示

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