歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

c語(yǔ)言第03章數(shù)據(jù)類型.ppt

  • 資源ID:11495444       資源大?。?span id="zdrghfr" class="font-tahoma">402KB        全文頁(yè)數(shù):86頁(yè)
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

c語(yǔ)言第03章數(shù)據(jù)類型.ppt

if(b>max),max=b;print(a);/*printf("%fn",a);*/scanf(“a=%f”,#includevoidmain()floata=0,b10;for(i=0;ia)a=bi;printf("a=%fn",a);,#includevoidmain()inti=0;floatmax=0,min=9999,b10;while(imax)max=bi;if(bib,3.2常量與變量,注意:編譯系統(tǒng)將大寫字母和小寫字母認(rèn)為是兩個(gè)不同的字符。建議變量名的長(zhǎng)度最好不要超過(guò)8個(gè)字符。在選擇變量名和其它標(biāo)識(shí)符時(shí),應(yīng)注意做到“見名知意”,即選有含意的英文單詞(或其縮寫)作標(biāo)識(shí)符。要求對(duì)所有用到的變量作強(qiáng)制定義,也就是“先定義,后使用”。,3.3整型數(shù)據(jù),3.3.1整型常量的表示方法整型常量即整常數(shù)。在語(yǔ)言中,整常數(shù)可用以下三種形式表示:(1)十進(jìn)制整數(shù)。如:123,-456.4。(2)八進(jìn)制整數(shù)。以0頭的數(shù)是八進(jìn)制數(shù)。如:0123表示八進(jìn)制數(shù)123,等于十進(jìn)制數(shù)83,-011表示八進(jìn)制數(shù)-11,即十進(jìn)制數(shù)-9。,3.3整型數(shù)據(jù),(3)十六進(jìn)制整數(shù)。以0 x開頭的數(shù)是16進(jìn)制數(shù)。如:0 x123,代表16進(jìn)制數(shù)123,等于十進(jìn)制數(shù)291。-0 x12等于十進(jìn)制數(shù)10。,3.3.2整型變量(1)整型數(shù)據(jù)在內(nèi)存中的存放形式數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的。如:inti;/*定義為整型變量*/i=10;/*給i賦以整數(shù)10*/,3.3整型數(shù)據(jù),注意:十進(jìn)制數(shù)10的二進(jìn)制形式為1010,TurboC2.0和TurboC+3.0為一個(gè)整型變量在內(nèi)存中分配2個(gè)字節(jié)的存儲(chǔ)單元(不同的編譯系統(tǒng)為整型數(shù)據(jù)分配的字節(jié)數(shù)是不相同的,VC+6.0則分配4個(gè)字節(jié))。數(shù)值是以補(bǔ)碼(complement)表示的。,3.3整型數(shù)據(jù),(2)整型變量的分類:,共六種,有符號(hào)基本整型有符號(hào)短整型有符號(hào)長(zhǎng)整型無(wú)符號(hào)基本整型無(wú)符號(hào)短整型無(wú)符號(hào)長(zhǎng)整型,(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshort(int)unsignedlong(int),注意:括號(hào)表示其中的內(nèi)容是可選的.,3.3整型數(shù)據(jù),整數(shù)類型的有關(guān)數(shù)據(jù):,類型類型說(shuō)明符長(zhǎng)度數(shù)的范圍基本型int2字節(jié)-3276832767短整型short2字節(jié)-215215-1長(zhǎng)整型long4字節(jié)-231231-1無(wú)符號(hào)整型unsigned2字節(jié)065535無(wú)符號(hào)短整型unsignedshort2字節(jié)065535無(wú)符號(hào)長(zhǎng)整型unsignedlong4字節(jié)0(232-1),3.3整型數(shù)據(jù),(3)整型變量的定義:規(guī)定在程序中所有用到的變量都必須在程序中定義,即“強(qiáng)制類型定義”。例如:inta,b(指定變量、為整型)unsignedshortc,d;(指定變量、為無(wú)符號(hào)短整型)longe,f;(指定變量、為長(zhǎng)整型),例3.2整型變量的定義與使用#includevoidmain()inta,b,c,d;/*指定、為整型變量*unsigned;*指定為無(wú)符號(hào)整型變量*12;-24;10;printf(,);,說(shuō)明:可以看到不同種類的整型數(shù)據(jù)可以進(jìn)行算術(shù)運(yùn)算,運(yùn)行結(jié)果:,,例3.3整型數(shù)據(jù)的溢出#includevoidmain()inta,b;a=32767;b=a+1;printf(“%d,%dn”,a,b);,說(shuō)明:數(shù)值是以補(bǔ)碼表示的。一個(gè)整型變量只能容納-3276832767范圍內(nèi)的數(shù),無(wú)法表示大于32767或小于-32768的數(shù)。遇此情況就發(fā)生“溢出”。,運(yùn)行結(jié)果:32767,-32768,3.3整型數(shù)據(jù),3.3.3整型常量的類型(1)一個(gè)整數(shù),如果其值在-32768+32767范圍內(nèi),認(rèn)為它是int型,它可以賦值給int型和longint型變量。(2)一個(gè)整數(shù),如果其值超過(guò)了上述范圍,而在-2147483637+2147483647范圍內(nèi),則認(rèn)為它是為長(zhǎng)整型??梢詫⑺x值給一個(gè)longint型變量。,3.3整型數(shù)據(jù),(3)如果所用的C版本(如TurboC)分配給shortint與int型數(shù)據(jù)在內(nèi)存中占據(jù)的長(zhǎng)度相同,則它的表數(shù)范圍與int型相同。因此一個(gè)int型的常量同時(shí)也是一個(gè)shortint型常量,可以賦給int型或shortint型變量。,3.3整型數(shù)據(jù),(4)一個(gè)整常量后面加一個(gè)字母u或U,認(rèn)為是unsignedint型,如12345u,在內(nèi)存中按unsignedint規(guī)定的方式存放(存儲(chǔ)單元中最高位不作為符號(hào)位,而用來(lái)存儲(chǔ)數(shù)據(jù))。如果寫成-12345u,則先將-12345轉(zhuǎn)換成其補(bǔ)碼53191,然后按無(wú)符號(hào)數(shù)存儲(chǔ)。,3.3整型數(shù)據(jù),(5)在一個(gè)整常量后面加一個(gè)字母l或L,則認(rèn)為是longint型常量。例如123l.432L.0L等。這往往用于函數(shù)調(diào)用中。如果函數(shù)的形參為longint型,則要求實(shí)參也為longint型。,3.4浮點(diǎn)型數(shù)據(jù),3.4.1浮點(diǎn)型常量的表示方法,兩種表示形式,小數(shù)指數(shù),0.1233e-3,注意:字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e,3.4浮點(diǎn)型數(shù)據(jù),規(guī)范化的指數(shù)形式:在字母e(或E)之前的小數(shù)部分中,小數(shù)點(diǎn)左邊應(yīng)有一位(且只能有一位)非零的數(shù)字.例如:123.456可以表示為:123.456e0,12.3456e1,1.23456e2,0.123456e3,0.0123456e4,0.00123456e其中的1.23456e3稱為“規(guī)范化的指數(shù)形式”。,3.4浮點(diǎn)型數(shù)據(jù),3.4.2浮點(diǎn)型變量(1)浮點(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ù)分成小數(shù)部分和指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。,3.4浮點(diǎn)型數(shù)據(jù),(2)浮點(diǎn)型變量的分類浮點(diǎn)型變量分為單精度(float型)、雙精度(double型)和長(zhǎng)雙精度型(longdouble)三類形式。,例3.4浮點(diǎn)型數(shù)據(jù)的舍入誤差#includevoidmain()floata,b;a=123456.789e5;b=a+20;printf(“%fn”,b);,說(shuō)明:一個(gè)浮點(diǎn)型變量只能保證的有效數(shù)字是7位有效數(shù)字,后面的數(shù)字是無(wú)意義的,并不準(zhǔn)確地表示該數(shù)。應(yīng)當(dāng)避免將一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加或相減,否則就會(huì)“丟失”小的數(shù),運(yùn)行結(jié)果:123456.789e5,3.4浮點(diǎn)型數(shù)據(jù),3.4.3浮點(diǎn)型常量的類型C編譯系統(tǒng)將浮點(diǎn)型常量作為雙精度來(lái)處理。例如:f=2.45678*4523.65系統(tǒng)先把2.45678和4523.65作為雙精度數(shù),然后進(jìn)行相乘的運(yùn)算,得到的乘也是一個(gè)雙精度數(shù)。最后取其前7位賦給浮點(diǎn)型變量f。如是在數(shù)的后面加字母f或F(如1.65f,654.87F),這樣編譯系統(tǒng)就會(huì)把它們按單精度(32位)處理。,3.5字符型數(shù)據(jù),3.5.1字符常量(1)用單引號(hào)包含的一個(gè)字符是字符型常量(2)只能包含一個(gè)字符,例,a,A,1abc、“a”,3.5字符型數(shù)據(jù),有些以“”開頭的特殊字符稱為轉(zhuǎn)義字符,n換行t橫向跳格r回車反斜杠dddddd表示1到3位八進(jìn)制數(shù)字xhhhh表示1到2位十六進(jìn)制數(shù)字,例3.5轉(zhuǎn)義字符的使用#includevoid()(abctderftgn);printf(htibbjkn);,打印機(jī)上的顯示結(jié)果:fabcgdehjik,顯示屏上的運(yùn)行結(jié)果:fgdejk,3.5字符型數(shù)據(jù),3.5.2字符變量字符型變量用來(lái)存放字符常量,注意只能放一個(gè)字符。字符變量的定義形式如下:charc1,c2;在本函數(shù)中可以用下面語(yǔ)句對(duì)c1,c2賦值:c1a;c2b;一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)。,3.5字符型數(shù)據(jù),3.5.3字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及其使用方法將一個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲(chǔ)單元中。,這樣使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。一個(gè)字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出。,例3.6向字符變量賦以整數(shù)。#includevoidmain()charc1,c2;c1=97;c2=98;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);,說(shuō)明:在第和第4行中,將整數(shù)和分別賦給c1和c2,它的作用相當(dāng)于以下兩個(gè)賦值語(yǔ)句:c1;c2;因?yàn)閍和b的ASCII碼為和,運(yùn)行結(jié)果:9798,例3.7大小寫字母的轉(zhuǎn)換#includevoidmain()charc1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“cc,c1,c2);,說(shuō)明:程序的作用是將兩個(gè)小寫字母a和b轉(zhuǎn)換成大寫字母A和B。從代碼表中可以看到每一個(gè)小寫字母比它相應(yīng)的大寫字母的碼大。語(yǔ)言允許字符數(shù)據(jù)與整數(shù)直接進(jìn)行算術(shù)運(yùn)算。,運(yùn)行結(jié)果:,3.5字符型數(shù)據(jù),說(shuō)明:有些系統(tǒng)(如TurboC)將字符變量定義為signedchar型。其存儲(chǔ)單元中的最高位作為符號(hào)位,它的取值范圍是-128127。如果在字符變量中存放一個(gè)ASCII碼為0127間的字符,由于字節(jié)中最高位為0,因此用%d輸出字符變量時(shí),輸出的是一個(gè)正整數(shù)。如果在字符變量中存放一個(gè)ASCII碼為128255間的字符,由于在字節(jié)中最高位為1,用%d格式符輸出時(shí),就會(huì)得到一個(gè)負(fù)整數(shù)。,3.5字符型數(shù)據(jù),3.5.4字符串常量字符串常量是一對(duì)雙撇號(hào)括起來(lái)的字符序列.合法的字符串常量:“Howdoyoudo.”,“CHINA”,“a”,“$123.45”可以輸出一個(gè)字符串,如printf(“Howdoyoudo.”);,3.5字符型數(shù)據(jù),是字符常量,”是字符串常量,二者不同。如:假設(shè)被指定為字符變量:charc,c=a;”a”;c”CHINA”;,結(jié)論:不能把一個(gè)字符串常量賦給一個(gè)字符變量。,3.5字符型數(shù)據(jù),規(guī)定:在每一個(gè)字符串常量的結(jié)尾加一個(gè)“字符串結(jié)束標(biāo)志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。規(guī)定以字符作為字符串結(jié)束標(biāo)志。,如:如果有一個(gè)字符串常量”,實(shí)際上在內(nèi)存中是:,它占內(nèi)存單元不是個(gè)字符,而是個(gè)字符,最后一個(gè)字符為。但在輸出時(shí)不輸出。,3.6變量賦初值,字符串常量(1)語(yǔ)言允許在定義變量的同時(shí)使變量初始化如:inta=3;/指定為整型變量,初值為floatf=3.56;/指定為浮點(diǎn)型變量,初值為.56charc=a;/指定為字符變量,初值為a,3.6變量賦初值,(2)可以使被定義的變量的一部分賦初值。如:inta,b,c=5;表示指定、為整型變量,但只對(duì)初始化,c的初值為(3)如果對(duì)幾個(gè)變量賦以同一個(gè)初值,應(yīng)寫成:inta=3,b=3,c=3;表示、的初值都是。不能寫成inta=b=c3;,注意:初始化不是在編譯階段完成的而是在程序運(yùn)行時(shí)執(zhí)行本函數(shù)時(shí)賦初值的,相當(dāng)于有一個(gè)賦值語(yǔ)句。,3.7各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型(包括int,short,long)、浮點(diǎn)型(包括float,double)可以混合運(yùn)算。在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算.,上述的類型轉(zhuǎn)換是由系統(tǒng)自動(dòng)進(jìn)行的,3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式,3.8.1運(yùn)算符簡(jiǎn)介的運(yùn)算符有以下幾類:(1)算術(shù)運(yùn)算符(+-*/%)(2)關(guān)系運(yùn)算符(!)(3)邏輯運(yùn)算符(!|)(4)位運(yùn)算符(>|)(5)賦值運(yùn)算符(及其擴(kuò)展賦值運(yùn)算符)(6)條件運(yùn)算符(?:)(7)逗號(hào)運(yùn)算符(,),3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式,(8)指針運(yùn)算符(*和)(9)求字節(jié)數(shù)運(yùn)算符()(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符((類型))(11)分量運(yùn)算符(->)(12)下標(biāo)運(yùn)算符()(13)其他(如函數(shù)調(diào)用運(yùn)算符(),3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式,3.8.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式(1)基本的算術(shù)運(yùn)算符:(加法運(yùn)算符,或正值運(yùn)算符。如:、)(減法運(yùn)算符,或負(fù)值運(yùn)算符。如:、)*(乘法運(yùn)算符。如:*)(除法運(yùn)算符。如:)(模運(yùn)算符,或稱求余運(yùn)算符,兩側(cè)均應(yīng)為整型數(shù)據(jù),如:的值為)。,3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式,(2)算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性基本的算術(shù)運(yùn)算符:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來(lái)的、符合語(yǔ)法規(guī)則的式子,稱為算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、變量、函數(shù)等。例如:*.5a是一個(gè)合法的表達(dá)式,3.2常量與變量,語(yǔ)言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。在表達(dá)式求值時(shí),先按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)行,例如先乘除后加減。規(guī)定了各種運(yùn)算符的結(jié)合方向(結(jié)合性)算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣摇?,即先左后右?3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式,(3)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符可以利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。一般形式:(類型名)(表達(dá)式)例如:(double)將轉(zhuǎn)換成double類型(int)(x+y)將x+y的值轉(zhuǎn)換成整型(float)(5%3)將5%3的值轉(zhuǎn)換成float型,例3.8強(qiáng)制類型轉(zhuǎn)換。#includevoid();();printf("x=%f,i=%dn",x,i);,說(shuō)明:有兩種類型轉(zhuǎn)換,一種是在運(yùn)算時(shí)不必用戶指定,系統(tǒng)自動(dòng)進(jìn)行的類型轉(zhuǎn)換,如3+6.5。第二種是強(qiáng)制類型轉(zhuǎn)換。當(dāng)自動(dòng)類型轉(zhuǎn)換不能實(shí)現(xiàn)目的時(shí),可以用強(qiáng)制類型轉(zhuǎn)換。,運(yùn)行結(jié)果:x3.600000,i=3,3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式,(4)自增、自減運(yùn)算符作用是使變量的值增或減如:,(在使用之前,先使的值加(減),(在使用之后,使的值加(減),3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式,i+與+i的區(qū)別:是先執(zhí)行后,再使用的值;是先使用的值后,再執(zhí)行。例如:;i的值先變成4,再賦給;i,j的值均為;先將i的值3賦給,的值為,然后變?yōu)?3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式,注意:(1)自增運(yùn)算符(),自減運(yùn)算符(),只能用于變量,而不能用于常量或表達(dá)式,(2)和的結(jié)合方向是“自右至左”。,自增(減)運(yùn)算符常用于循環(huán)語(yǔ)句中使循環(huán)變量自動(dòng)加。也用于指針變量,使指針指向下一個(gè)地址,3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式,(5)有關(guān)表達(dá)式使用中的問(wèn)題說(shuō)明ANSIC并沒(méi)有具體規(guī)定表達(dá)式中的子表達(dá)式的求值順序,允許各編譯系統(tǒng)自己安排。例如:對(duì)表達(dá)式a=f1()+f2()并不是所有的編譯系統(tǒng)都先調(diào)用f1(),然后調(diào)用f2()。在有的情況下結(jié)果可能不同。有時(shí)會(huì)出現(xiàn)一些令人容易搞混的問(wèn)題,因此務(wù)必要小心謹(jǐn)慎。,3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式,語(yǔ)言中有的運(yùn)算符為一個(gè)字符,有的運(yùn)算符由兩個(gè)字符組成,為避免誤解,最好采取大家都能理解的寫法。例如:不要寫成i+j的形式,而應(yīng)寫成(i+)+j的形式,3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式,在調(diào)用函數(shù)時(shí),實(shí)參數(shù)的求值順序,標(biāo)準(zhǔn)并無(wú)統(tǒng)一規(guī)定。例如:的初值為,如果有下面的函數(shù)調(diào)用:printf(,i+)在有的系統(tǒng)中,從左至右求值,輸出“,”。在多數(shù)系統(tǒng)中對(duì)函數(shù)參數(shù)的求值順序是自右而左,函數(shù)輸出的是“,”。以上這種寫法不宜提倡,最好改寫成j=i+;printf("%d,%d",j,i),不要寫出別人看不懂的也不知道系統(tǒng)會(huì)怎樣執(zhí)行程序,3.9賦值運(yùn)算符和賦值表達(dá)式,(1)賦值運(yùn)算符賦值符號(hào)“”就是賦值運(yùn)算符,它的作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量。如“”的作用是執(zhí)行一次賦值操作(或稱賦值運(yùn)算)。把常量賦給變量。也可以將一個(gè)表達(dá)式的值賦給一個(gè)變量.,3.9賦值運(yùn)算符和賦值表達(dá)式,(2)類型轉(zhuǎn)換如果賦值運(yùn)算符兩側(cè)的類型不一致,但都是數(shù)值型或字符型時(shí),在賦值時(shí)要進(jìn)行類型轉(zhuǎn)換。將浮點(diǎn)型數(shù)據(jù)(包括單、雙精度)賦給整型變量時(shí),舍棄浮點(diǎn)數(shù)的小數(shù)部分。如:為整型變量,執(zhí)行“i=3.56”的結(jié)果是使的值為,以整數(shù)形式存儲(chǔ)在整型變量中.,3.9賦值運(yùn)算符和賦值表達(dá)式,將整型數(shù)據(jù)賦給單、雙精度變量時(shí),數(shù)值不變,但以浮點(diǎn)數(shù)形式存儲(chǔ)到變量中如:將賦給float變量,即執(zhí)行,先將轉(zhuǎn)換成,再存儲(chǔ)在中。將賦給型變量,即執(zhí)行,則將補(bǔ)足有效位數(shù)字為,然后以雙精度浮點(diǎn)數(shù)形式存儲(chǔ)到變量中。,3.9賦值運(yùn)算符和賦值表達(dá)式,將一個(gè)double型數(shù)據(jù)賦給float變量時(shí),截取其前面7位有效數(shù)字,存放到float變量的存儲(chǔ)單元(4個(gè)字節(jié))中。但應(yīng)注意數(shù)值范圍不能溢出。如:floatf;doubled=123.456789e100;f=d;就出現(xiàn)溢出的錯(cuò)誤。如果將一個(gè)float型數(shù)據(jù)賦給double變量時(shí),數(shù)值不變,有效位數(shù)擴(kuò)展到16位,在內(nèi)存中以8個(gè)字節(jié)存儲(chǔ),3.9賦值運(yùn)算符和賦值表達(dá)式,字符型數(shù)據(jù)賦給整型變量時(shí),由于字符只占1個(gè)字節(jié),而整型變量為個(gè)字節(jié),因此將字符數(shù)據(jù)(個(gè)二進(jìn)位)放到整型變量存儲(chǔ)單元的低位中。第一種情況:如果所用系統(tǒng)將字符處理為無(wú)符號(hào)的字符類型,或程序已將字符變量定義為型,則將字符的位放到整型變量低位,高位補(bǔ)零例如:將字符賦給型變量,3.9賦值運(yùn)算符和賦值表達(dá)式,第二種情況:如果所用系統(tǒng)(如TurboC+)將字符處理為帶符號(hào)的(即signedchar),若字符最高位為,則整型變量高位補(bǔ);若字符最高位為,則高位全補(bǔ)。這稱為“符號(hào)擴(kuò)展”,這樣做的目的是使數(shù)值保持不變,如變量(字符)以整數(shù)形式輸出為,的值也是。,3.9賦值運(yùn)算符和賦值表達(dá)式,將一個(gè)int、short、long型數(shù)據(jù)賦給一個(gè)char型變量時(shí),只將其低8位原封不動(dòng)地送到char型變量(即截?cái)啵?。例如:inti=289;charc=a;c=i;賦值情況:,c的值為33,如果用“%c”輸出c,將得到字符“!”(其ASCII碼為33)。,3.9賦值運(yùn)算符和賦值表達(dá)式,將帶符號(hào)的整型數(shù)據(jù)(int型)賦給long型變量時(shí),要進(jìn)行符號(hào)擴(kuò)展,將整型數(shù)的16位送到long型低16位中:如果int型數(shù)據(jù)為正值(符號(hào)位為),則long型變量的高16位補(bǔ);如果int型變量為負(fù)值(符號(hào)位為),則long型變量的高16位補(bǔ),以保持?jǐn)?shù)值不改變。反之,若將一個(gè)long型數(shù)據(jù)賦給一個(gè)int型變量,只將long型數(shù)據(jù)中低16位原封不動(dòng)地送到整型變量(即截?cái)啵?3.9賦值運(yùn)算符和賦值表達(dá)式,例如:inta;longb;a=b賦值情況如圖:,如果(八進(jìn)制數(shù)),則賦值后值為。見圖3.14,3.9賦值運(yùn)算符和賦值表達(dá)式,將unsignedint型數(shù)據(jù)賦給longint型變量時(shí),不存在符號(hào)擴(kuò)展問(wèn)題,只需將高位補(bǔ)即可。將一個(gè)unsigned類型數(shù)據(jù)賦給一個(gè)占字節(jié)數(shù)相同的非unsigned型整型變量(例如:unsignedint->int,unsignedlong->long,unsignedshort->short),將unsigned型變量的內(nèi)容原樣送到非unsigned型變量中,但如果數(shù)據(jù)范圍超過(guò)相應(yīng)整型的范圍,則會(huì)出現(xiàn)數(shù)據(jù)錯(cuò)誤。,3.9賦值運(yùn)算符和賦值表達(dá)式,例如:unsignedint65535;intb;;,將整個(gè)送到中,由于是int,第位是符號(hào)位,因此b成了負(fù)數(shù)。根據(jù)補(bǔ)碼知識(shí)可知,的值為-1,可以用printf(%d,);來(lái)驗(yàn)證。,將非unsigned型數(shù)據(jù)賦給長(zhǎng)度相同的unsigned型變量,也是原樣照賦(連原有的符號(hào)位也作為數(shù)值一起傳送)。,例3.9有符號(hào)數(shù)據(jù)傳送給無(wú)符號(hào)變量。#includevoid();(n,);,說(shuō)明:“%u”是輸出無(wú)符號(hào)數(shù)時(shí)所用的格式符。如果為正值,且在32767之間,則賦值后數(shù)值不變。賦值情況見圖,圖,運(yùn)行結(jié)果:,3.9賦值運(yùn)算符和賦值表達(dá)式,(3)復(fù)合的賦值運(yùn)算符在賦值符“”之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符。例如:等價(jià)于*等價(jià)于*()等價(jià)于,以“”為例來(lái)說(shuō)明,它相當(dāng)于使進(jìn)行一次自加()的操作。即先使加,再賦給。,3.9賦值運(yùn)算符和賦值表達(dá)式,為便于記憶,可以這樣理解:a+=b(其中a為變量,b為表達(dá)式)a+=b(將有下劃線的“a+”移到“=”右側(cè))|_a=a+b(在“=”左側(cè)補(bǔ)上變量名a),3.9賦值運(yùn)算符和賦值表達(dá)式,注意:如果是包含若干項(xiàng)的表達(dá)式,則相當(dāng)于它有括號(hào)。如:x%=y+3x%=(y+3)|_x=x%(y+3)(不要錯(cuò)寫成x=x%y+3),凡是二元(二目)運(yùn)算符,都可以與賦值符一起組合成復(fù)合賦值符。,語(yǔ)言規(guī)定可以使用種復(fù)合賦值運(yùn)算符:,*,>,|,3.9賦值運(yùn)算符和賦值表達(dá)式,(4)賦值表達(dá)式由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子稱為“賦值表達(dá)式”。一般形式為:例如:“5”是一個(gè)賦值表達(dá)式,3.9賦值運(yùn)算符和賦值表達(dá)式,對(duì)賦值表達(dá)式求解的過(guò)程是:求賦值運(yùn)算符右側(cè)的“表達(dá)式”的值;賦給賦值運(yùn)算符左側(cè)的變量。例如:賦值表達(dá)式“=3*5”的值為15,執(zhí)行表達(dá)式后,變量a的值也是15。,注意:一個(gè)表達(dá)式應(yīng)該有一個(gè)值,3.9賦值運(yùn)算符和賦值表達(dá)式,左值(lvalue):賦值運(yùn)算符左側(cè)的標(biāo)識(shí)符變量可以作為左值;而表達(dá)式就不能作為左值(如a+b);常量也不能作為左值,,右值(lvalue):出現(xiàn)在賦值運(yùn)算符右側(cè)的表達(dá)式左值也可以出現(xiàn)在賦值運(yùn)算符右側(cè),因而左值都可以作為右值。,3.9賦值運(yùn)算符和賦值表達(dá)式,賦值表達(dá)式中的“表達(dá)式”,又可以是一個(gè)賦值表達(dá)式.例如:a=(b=5),分析:括弧內(nèi)的“b=5”是一個(gè)賦值表達(dá)式,它的值等于5。執(zhí)行表達(dá)式“a=(b=5)”相當(dāng)于執(zhí)行“b=5”和“ab”兩個(gè)賦值表達(dá)式。賦值運(yùn)算符按照“自右而左”的結(jié)合順序,因此,“(b5)”外面的括弧可以不要,即“a=(b=5)”和“a=b=5”等價(jià).,3.9賦值運(yùn)算符和賦值表達(dá)式,請(qǐng)分析下面的賦值表達(dá)式(a=3*5)=4*3,分析:先執(zhí)行括弧內(nèi)的運(yùn)算,將15賦給a,然后執(zhí)行4*3的運(yùn)算,得12,再把12賦給a。最后a的值為12,整個(gè)表達(dá)式的值為12??梢钥吹?a=3*5)出現(xiàn)在賦值運(yùn)算符的左側(cè),因此賦值表達(dá)式(a=3*5)是左值,注意:在對(duì)賦值表達(dá)式(a=3*5)求解后,變量a得到值15執(zhí)行(a=3*5)=4*3時(shí),實(shí)際上是將4*3的積12賦給變量a,而不是賦給3*5。,不能寫成:a=3*5=4*3,3.9賦值運(yùn)算符和賦值表達(dá)式,賦值表達(dá)式也可以包含復(fù)合的賦值運(yùn)算符。如:a+=a-=a*a,分析:此賦值表達(dá)式的求解步驟如下先進(jìn)行“*”的運(yùn)算,它相當(dāng)于*,a的值為144132。再進(jìn)行“”的運(yùn)算,相當(dāng)于=a+(-132),a的值為132-132-264。,3.9賦值運(yùn)算符和賦值表達(dá)式,將賦值表達(dá)式作為表達(dá)式的一種,使賦值操作不僅可以出現(xiàn)在賦值語(yǔ)句中,而且可以以表達(dá)式形式出現(xiàn)在其他語(yǔ)句(如輸出語(yǔ)句、循環(huán)語(yǔ)句等)中.如:printf("%d",a=b);,分析:如果b的值為3,則輸出a的值(也是表達(dá)式a=b的值)為3。在一個(gè)語(yǔ)句中完成了賦值和輸出雙重功能。,3.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式,逗號(hào)運(yùn)算符:將兩個(gè)表達(dá)式連接起來(lái),又稱為“順序求值運(yùn)算符”如:5,,一般形式:表達(dá)式,表達(dá)式,求解過(guò)程:先求解表達(dá)式,再求解表達(dá)式。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式的值。,逗號(hào)表達(dá)式的值為14,3.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式,例:逗號(hào)表達(dá)式*5,*,分析:賦值運(yùn)算符的優(yōu)先級(jí)別高于逗號(hào)運(yùn)算符,因此應(yīng)先求解*5.,的值為5,然后求解*,得。整個(gè)逗號(hào)表達(dá)式的值為。,一個(gè)逗號(hào)表達(dá)式又可以與另一個(gè)表達(dá)式組成一個(gè)新的逗號(hào)表達(dá)式如:(*,*)先計(jì)算出的值等于,再進(jìn)行*的運(yùn)算得60(但值未變,仍為15),再進(jìn)行得,即整個(gè)表達(dá)式的值為。,3.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式,逗號(hào)表達(dá)式的一般形式可以擴(kuò)展為表達(dá)式,表達(dá)式,表達(dá)式,表達(dá)式它的值為表達(dá)式的值。,逗號(hào)運(yùn)算符是所有運(yùn)算符中級(jí)別最低的例:(,*),*3,賦值表達(dá)式,將一個(gè)逗號(hào)表達(dá)式的值賦給,的值等于,逗號(hào)表達(dá)式,包括一個(gè)賦值表達(dá)式和一個(gè)算術(shù)表達(dá)式,的值為,整個(gè)逗號(hào)表達(dá)式的值為18。,3.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式,注意:并不是任何地方出現(xiàn)的逗號(hào)都是作為逗號(hào)運(yùn)算符。例如函數(shù)參數(shù)也是用逗號(hào)來(lái)間隔的。如:printf(“%d,%d,%d”,a,b,c);,“,”并不是一個(gè)逗號(hào)表達(dá)式,它是printf函數(shù)的3個(gè)參數(shù),printf(“%d,%d,%d”,(a,b,c),b,c),“(,)”是一個(gè)逗號(hào)表達(dá)式,它的值等于的值。,

注意事項(xiàng)

本文(c語(yǔ)言第03章數(shù)據(jù)類型.ppt)為本站會(huì)員(tia****nde)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!