第五章數(shù)據(jù)類型_第1頁
第五章數(shù)據(jù)類型_第2頁
第五章數(shù)據(jù)類型_第3頁
第五章數(shù)據(jù)類型_第4頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第五章第五章 數(shù)據(jù)類型數(shù)據(jù)類型2n任何程序,不管以何種語言寫成,均可任何程序,不管以何種語言寫成,均可以視為刻劃了一個(gè)操作集合。并將以一以視為刻劃了一個(gè)操作集合。并將以一定順序作用到一定數(shù)據(jù)上。定順序作用到一定數(shù)據(jù)上。n語言的基本不同在于:語言的基本不同在于:n允許的數(shù)據(jù)類型允許的數(shù)據(jù)類型n允許的操作類型允許的操作類型n控制操作順序的機(jī)制??刂撇僮黜樞虻臋C(jī)制。3本章主要內(nèi)容本章主要內(nèi)容n數(shù)據(jù)類型的基本概念及相關(guān)屬性數(shù)據(jù)類型的基本概念及相關(guān)屬性n基本數(shù)據(jù)類型基本數(shù)據(jù)類型n復(fù)合數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型45.1 類型和對(duì)象的性質(zhì)類型和對(duì)象的性質(zhì)n數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象、變量和常量變量和常量n數(shù)據(jù)類型及其規(guī)約數(shù)

2、據(jù)類型及其規(guī)約n簡(jiǎn)單數(shù)據(jù)類型的規(guī)約與實(shí)現(xiàn)簡(jiǎn)單數(shù)據(jù)類型的規(guī)約與實(shí)現(xiàn)n數(shù)據(jù)對(duì)象的聲明數(shù)據(jù)對(duì)象的聲明n類型檢查和類型轉(zhuǎn)換類型檢查和類型轉(zhuǎn)換n數(shù)據(jù)對(duì)象的初始化數(shù)據(jù)對(duì)象的初始化5數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象n計(jì)算機(jī)的數(shù)據(jù)存儲(chǔ)在結(jié)構(gòu)上是簡(jiǎn)單的,計(jì)算機(jī)的數(shù)據(jù)存儲(chǔ)在結(jié)構(gòu)上是簡(jiǎn)單的,通常是由位串構(gòu)成的字節(jié)。通常是由位串構(gòu)成的字節(jié)。n而語言虛擬機(jī)的數(shù)據(jù)存儲(chǔ)則有更復(fù)雜的而語言虛擬機(jī)的數(shù)據(jù)存儲(chǔ)則有更復(fù)雜的組織,如:數(shù)組、棧、數(shù)、字符串、以組織,如:數(shù)組、棧、數(shù)、字符串、以及其它存在于程序執(zhí)行中不同點(diǎn)的數(shù)據(jù)。及其它存在于程序執(zhí)行中不同點(diǎn)的數(shù)據(jù)。n我們稱虛擬機(jī)上一個(gè)或多個(gè)數(shù)據(jù)片斷運(yùn)我們稱虛擬機(jī)上一個(gè)或多個(gè)數(shù)據(jù)片斷運(yùn)行時(shí)的組合為數(shù)據(jù)對(duì)

3、象。行時(shí)的組合為數(shù)據(jù)對(duì)象。6數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象n在程序運(yùn)行中,存在許多不同類型的不同數(shù)據(jù)在程序運(yùn)行中,存在許多不同類型的不同數(shù)據(jù)對(duì)象。這些對(duì)象及其相互關(guān)系在運(yùn)行時(shí)動(dòng)態(tài)變對(duì)象。這些對(duì)象及其相互關(guān)系在運(yùn)行時(shí)動(dòng)態(tài)變化?;?。n有些數(shù)據(jù)對(duì)象是程序員定義的,如變量、常量、有些數(shù)據(jù)對(duì)象是程序員定義的,如變量、常量、數(shù)組、文件等。程序員通過聲明和語句顯式地?cái)?shù)組、文件等。程序員通過聲明和語句顯式地創(chuàng)建和操作它們。創(chuàng)建和操作它們。 n有些數(shù)據(jù)對(duì)象是系統(tǒng)定義的,不可為程序員直有些數(shù)據(jù)對(duì)象是系統(tǒng)定義的,不可為程序員直接訪問。如:運(yùn)行時(shí)存儲(chǔ)棧、子程序激活記錄、接訪問。如:運(yùn)行時(shí)存儲(chǔ)棧、子程序激活記錄、文件緩沖、自由空間列

4、表等。這些數(shù)據(jù)對(duì)象在文件緩沖、自由空間列表等。這些數(shù)據(jù)對(duì)象在運(yùn)行需要時(shí)自動(dòng)產(chǎn)生,不需要時(shí)刪除。運(yùn)行需要時(shí)自動(dòng)產(chǎn)生,不需要時(shí)刪除。7數(shù)據(jù)對(duì)象n標(biāo)量數(shù)據(jù)對(duì)象:nNumeric (Integers, Real)nBooleansnCharactersnEnumerationsn復(fù)合對(duì)象:nStringnPointern結(jié)構(gòu)化對(duì)象:nArraysnRecordsnListsnSetsn抽象數(shù)據(jù)對(duì)象:nClassesn活動(dòng)對(duì)象:nTasksnProcesses8數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象n數(shù)據(jù)對(duì)象表示了數(shù)據(jù)值的一個(gè)容器,是值被數(shù)據(jù)對(duì)象表示了數(shù)據(jù)值的一個(gè)容器,是值被存放和檢索的地方,而數(shù)據(jù)值是在存儲(chǔ)器中存放和檢索的

5、地方,而數(shù)據(jù)值是在存儲(chǔ)器中以一種特定的位模式表示。以一種特定的位模式表示。n數(shù)據(jù)對(duì)象和數(shù)據(jù)值在大多數(shù)語言中均是明確數(shù)據(jù)對(duì)象和數(shù)據(jù)值在大多數(shù)語言中均是明確區(qū)分的,如圖所示。區(qū)分的,如圖所示。9數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象n每個(gè)數(shù)據(jù)對(duì)象有生命期,在生命期內(nèi)可用來每個(gè)數(shù)據(jù)對(duì)象有生命期,在生命期內(nèi)可用來存放數(shù)據(jù)值。存放數(shù)據(jù)值。n數(shù)據(jù)對(duì)象可分為簡(jiǎn)單數(shù)據(jù)對(duì)象和數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)對(duì)象可分為簡(jiǎn)單數(shù)據(jù)對(duì)象和數(shù)據(jù)結(jié)構(gòu)n數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) 其他數(shù)據(jù)對(duì)象的聚集。其他數(shù)據(jù)對(duì)象的聚集。n數(shù)據(jù)對(duì)象在其生命期中涉及各種綁定,雖然數(shù)據(jù)對(duì)象在其生命期中涉及各種綁定,雖然其屬性不變,但綁定可動(dòng)態(tài)改變。其屬性不變,但綁定可動(dòng)態(tài)改變。10數(shù)據(jù)對(duì)象:屬性和

6、綁定數(shù)據(jù)對(duì)象:屬性和綁定n重要的屬性和綁定有:重要的屬性和綁定有:1、類型、類型n通常在程序翻譯時(shí),關(guān)聯(lián)數(shù)據(jù)對(duì)象和它可能的取值集合。通常在程序翻譯時(shí),關(guān)聯(lián)數(shù)據(jù)對(duì)象和它可能的取值集合。2、位置、位置n通常不由程序員規(guī)定,而是系統(tǒng)存儲(chǔ)管理負(fù)責(zé)。通常不由程序員規(guī)定,而是系統(tǒng)存儲(chǔ)管理負(fù)責(zé)。3、值、值n由賦值操作完成綁定。由賦值操作完成綁定。4、名、名n通常在聲明時(shí)完成綁定,但可被子程序調(diào)用和返回修改通常在聲明時(shí)完成綁定,但可被子程序調(diào)用和返回修改5、部件、部件n通常用指針值相連,可通過指針的修改而變動(dòng)。通常用指針值相連,可通過指針的修改而變動(dòng)。 返回11變量和常量變量和常量n程序員通過變量來顯式地定義

7、和命名數(shù)據(jù)對(duì)象。程序員通過變量來顯式地定義和命名數(shù)據(jù)對(duì)象。n一個(gè)簡(jiǎn)單的變量是有名字的簡(jiǎn)單數(shù)據(jù)對(duì)象,其一個(gè)簡(jiǎn)單的變量是有名字的簡(jiǎn)單數(shù)據(jù)對(duì)象,其內(nèi)容可以發(fā)生變化。內(nèi)容可以發(fā)生變化。n常量是具有名字的數(shù)據(jù)對(duì)象,其值在其生命期常量是具有名字的數(shù)據(jù)對(duì)象,其值在其生命期內(nèi)永久不變。一個(gè)文字(或文字常量)是一個(gè)內(nèi)永久不變。一個(gè)文字(或文字常量)是一個(gè)常量,其名是其值的書寫表示,如常量,其名是其值的書寫表示,如21表示值為表示值為21的整數(shù)常量。的整數(shù)常量。n程序員定義的常量程序員定義的常量其名字由程序員指定。其名字由程序員指定。n常量的綁定由編譯器完成。常量的綁定由編譯器完成。n如如C語言中,語言中,#de

8、fine MAX 20n語句語句MAX=4是非法的。是非法的。 返回12數(shù)據(jù)類型數(shù)據(jù)類型n一個(gè)數(shù)據(jù)類型是一類數(shù)據(jù)對(duì)象加上創(chuàng)建及操作一個(gè)數(shù)據(jù)類型是一類數(shù)據(jù)對(duì)象加上創(chuàng)建及操作它們的一組操作。它們的一組操作。n每個(gè)語言有一個(gè)基本數(shù)據(jù)類型集合,是語言固每個(gè)語言有一個(gè)基本數(shù)據(jù)類型集合,是語言固有的。有的。n有的語言還提供了設(shè)施允許程序員定義新數(shù)據(jù)類型。有的語言還提供了設(shè)施允許程序員定義新數(shù)據(jù)類型。n有的新語言還允許類型本身被語言操作(高階能有的新語言還允許類型本身被語言操作(高階能力)。力)。n每個(gè)數(shù)據(jù)類型都包括對(duì)其相關(guān)性質(zhì)的每個(gè)數(shù)據(jù)類型都包括對(duì)其相關(guān)性質(zhì)的規(guī)約規(guī)約以及以及在計(jì)算機(jī)中的具體實(shí)現(xiàn)在計(jì)算機(jī)中

9、的具體實(shí)現(xiàn)13數(shù)據(jù)類型的規(guī)約數(shù)據(jù)類型的規(guī)約n數(shù)據(jù)類型的規(guī)約包括:數(shù)據(jù)類型的規(guī)約包括:1、區(qū)分該類型的數(shù)據(jù)對(duì)象的屬性、區(qū)分該類型的數(shù)據(jù)對(duì)象的屬性2、該類型數(shù)據(jù)對(duì)象可具有的值、該類型數(shù)據(jù)對(duì)象可具有的值3、定義該類型數(shù)據(jù)對(duì)象可能處理的操作、定義該類型數(shù)據(jù)對(duì)象可能處理的操作n例如:數(shù)組數(shù)據(jù)類型的規(guī)約例如:數(shù)組數(shù)據(jù)類型的規(guī)約n屬性:維數(shù)、每維的下標(biāo)范圍、元素的數(shù)據(jù)類型等。屬性:維數(shù)、每維的下標(biāo)范圍、元素的數(shù)據(jù)類型等。n值:形成數(shù)值元素有效值的數(shù)的集合。值:形成數(shù)值元素有效值的數(shù)的集合。n操作:選擇個(gè)體數(shù)組元素、創(chuàng)建數(shù)組、改變數(shù)組形操作:選擇個(gè)體數(shù)組元素、創(chuàng)建數(shù)組、改變數(shù)組形狀,訪問下標(biāo)上下界、完成數(shù)組間

10、的算術(shù)操作等。狀,訪問下標(biāo)上下界、完成數(shù)組間的算術(shù)操作等。返回14數(shù)據(jù)類型的實(shí)現(xiàn)數(shù)據(jù)類型的實(shí)現(xiàn)n數(shù)據(jù)類型的實(shí)現(xiàn)包括:數(shù)據(jù)類型的實(shí)現(xiàn)包括:1、存儲(chǔ)表示:用于在計(jì)算機(jī)存儲(chǔ)器中表示數(shù)、存儲(chǔ)表示:用于在計(jì)算機(jī)存儲(chǔ)器中表示數(shù)據(jù)對(duì)象。據(jù)對(duì)象。2、數(shù)據(jù)類型操作是以特殊的算法或過程表示、數(shù)據(jù)類型操作是以特殊的算法或過程表示的方式,這些算法和過程操縱數(shù)據(jù)對(duì)象的存的方式,這些算法和過程操縱數(shù)據(jù)對(duì)象的存儲(chǔ)表示。儲(chǔ)表示。返回15數(shù)據(jù)類型的規(guī)約與實(shí)現(xiàn)數(shù)據(jù)類型的規(guī)約與實(shí)現(xiàn)n從語法表示來看,規(guī)約和實(shí)現(xiàn)大體上獨(dú)從語法表示來看,規(guī)約和實(shí)現(xiàn)大體上獨(dú)立于特定的語法形式。立于特定的語法形式。n屬性:表示為聲明或類型定義屬性:表示為聲

11、明或類型定義n值:表示為文字或定義的常量值:表示為文字或定義的常量n操作:可由特殊的符號(hào)、固有過程或函數(shù)、操作:可由特殊的符號(hào)、固有過程或函數(shù)、或隱含地通過其他語言元素的特殊組合來調(diào)或隱含地通過其他語言元素的特殊組合來調(diào)用。用。16基本(簡(jiǎn)單)數(shù)據(jù)類型的規(guī)約基本(簡(jiǎn)單)數(shù)據(jù)類型的規(guī)約n簡(jiǎn)單數(shù)據(jù)對(duì)象包含單個(gè)數(shù)據(jù)值,這類數(shù)據(jù)對(duì)象簡(jiǎn)單數(shù)據(jù)對(duì)象包含單個(gè)數(shù)據(jù)值,這類數(shù)據(jù)對(duì)象稱為基本數(shù)據(jù)類型。稱為基本數(shù)據(jù)類型。n雖然不同的語言有不同的基本類型集合,但整雖然不同的語言有不同的基本類型集合,但整數(shù)、實(shí)數(shù)、字符、布爾、枚舉、指針等基本都數(shù)、實(shí)數(shù)、字符、布爾、枚舉、指針等基本都是有的。但各自精確的規(guī)約對(duì)不同語言會(huì)

12、有差是有的。但各自精確的規(guī)約對(duì)不同語言會(huì)有差異。異。17簡(jiǎn)單數(shù)據(jù)類型的規(guī)約:屬性簡(jiǎn)單數(shù)據(jù)類型的規(guī)約:屬性n數(shù)據(jù)對(duì)象的基本屬性(如類型和名字)通常在數(shù)據(jù)對(duì)象的基本屬性(如類型和名字)通常在生命期中是不變的。生命期中是不變的。n有的屬性可存放在描述子中,作為數(shù)據(jù)對(duì)象的有的屬性可存放在描述子中,作為數(shù)據(jù)對(duì)象的一部分在運(yùn)行時(shí)出現(xiàn)。一部分在運(yùn)行時(shí)出現(xiàn)。n有的屬性只用于確定其存儲(chǔ)表示,在執(zhí)行中不有的屬性只用于確定其存儲(chǔ)表示,在執(zhí)行中不顯式地出現(xiàn)。顯式地出現(xiàn)。n屬性值和數(shù)據(jù)對(duì)象的值是不同的。屬性值和數(shù)據(jù)對(duì)象的值是不同的。18簡(jiǎn)單數(shù)據(jù)類型的規(guī)約:值簡(jiǎn)單數(shù)據(jù)類型的規(guī)約:值n數(shù)據(jù)對(duì)象的類型確定了它可包含的可能數(shù)據(jù)

13、對(duì)象的類型確定了它可包含的可能值集,但在執(zhí)行中任一點(diǎn),只包含一個(gè)值集,但在執(zhí)行中任一點(diǎn),只包含一個(gè)來自該集合的單值。來自該集合的單值。n基本數(shù)據(jù)類型定義的值集通常是有序集,基本數(shù)據(jù)類型定義的值集通常是有序集,有最小值和最大值。有最小值和最大值。19簡(jiǎn)單數(shù)據(jù)類型的規(guī)約:操作簡(jiǎn)單數(shù)據(jù)類型的規(guī)約:操作(1)n操作確定數(shù)據(jù)對(duì)象被處理的方式。操作確定數(shù)據(jù)對(duì)象被處理的方式。n操作可能是原始操作,也可是用戶定義操作。操作可能是原始操作,也可是用戶定義操作。n操作是一個(gè)數(shù)學(xué)函數(shù),對(duì)一給定輸入?yún)?shù),有操作是一個(gè)數(shù)學(xué)函數(shù),對(duì)一給定輸入?yún)?shù),有定義的、唯一確定的結(jié)果。每個(gè)操作有作用域、定義的、唯一確定的結(jié)果。每個(gè)操

14、作有作用域、值域。操作的動(dòng)作定義了對(duì)給定參數(shù)的結(jié)果。值域。操作的動(dòng)作定義了對(duì)給定參數(shù)的結(jié)果。n算法可用于刻劃操作的動(dòng)作,但其他規(guī)約也是算法可用于刻劃操作的動(dòng)作,但其他規(guī)約也是可以的。如可用乘法表來刻劃乘法的動(dòng)作??梢缘?。如可用乘法表來刻劃乘法的動(dòng)作。20簡(jiǎn)單數(shù)據(jù)類型的規(guī)約:操作簡(jiǎn)單數(shù)據(jù)類型的規(guī)約:操作(2)n操作的基調(diào)(操作的基調(diào)(signature)定義了操作的作用域中定義了操作的作用域中參數(shù)的數(shù)量、順序和類型,以及結(jié)果值域的順序和類參數(shù)的數(shù)量、順序和類型,以及結(jié)果值域的順序和類型。數(shù)學(xué)記號(hào):型。數(shù)學(xué)記號(hào):OP:type1type2typentype也稱為函數(shù)原形也稱為函數(shù)原形n操作有單元、

15、二元和多元。操作有單元、二元和多元。n動(dòng)作的精確規(guī)約需要比參數(shù)類型更多的信息。動(dòng)作的精確規(guī)約需要比參數(shù)類型更多的信息。n特別地,參數(shù)類型的存儲(chǔ)表示通常確定那些參數(shù)如何被操作,特別地,參數(shù)類型的存儲(chǔ)表示通常確定那些參數(shù)如何被操作,如:二進(jìn)制數(shù)的乘法和十進(jìn)制數(shù)的乘法有很大不同。如:二進(jìn)制數(shù)的乘法和十進(jìn)制數(shù)的乘法有很大不同。n這樣,在操作的規(guī)約中,常給出動(dòng)作的非形式的描述。這樣,在操作的規(guī)約中,常給出動(dòng)作的非形式的描述。n一旦參數(shù)的存儲(chǔ)表示確定,動(dòng)作的精確規(guī)約是操作實(shí)一旦參數(shù)的存儲(chǔ)表示確定,動(dòng)作的精確規(guī)約是操作實(shí)現(xiàn)的一部分?,F(xiàn)的一部分。21簡(jiǎn)單數(shù)據(jù)類型的規(guī)約:操作簡(jiǎn)單數(shù)據(jù)類型的規(guī)約:操作(3)n有時(shí)

16、難于確定操作的精確規(guī)約為數(shù)學(xué)函數(shù),有有時(shí)難于確定操作的精確規(guī)約為數(shù)學(xué)函數(shù),有四個(gè)主要因素。四個(gè)主要因素。1、操作對(duì)某些輸入無定義。、操作對(duì)某些輸入無定義。2、隱含的參數(shù)、隱含的參數(shù)操作會(huì)訪問其他隱含參數(shù)(全局操作會(huì)訪問其他隱含參數(shù)(全局變量;非局部變量)。變量;非局部變量)。3、副作用(隱含結(jié)果)、副作用(隱含結(jié)果)可能修改其他數(shù)據(jù)對(duì)象??赡苄薷钠渌麛?shù)據(jù)對(duì)象。4、自我修改(歷史敏感性)、自我修改(歷史敏感性)操作修改自己的內(nèi)操作修改自己的內(nèi)部結(jié)構(gòu)、或是執(zhí)行中保持的局部數(shù)據(jù)、或是代碼。部結(jié)構(gòu)、或是執(zhí)行中保持的局部數(shù)據(jù)、或是代碼。n操作的結(jié)果還依賴于歷史調(diào)用。操作的結(jié)果還依賴于歷史調(diào)用。n例:隨機(jī)

17、數(shù)產(chǎn)生器。例:隨機(jī)數(shù)產(chǎn)生器。nLISP中可自我修改代碼。中可自我修改代碼。22基本數(shù)據(jù)類型的實(shí)現(xiàn)基本數(shù)據(jù)類型的實(shí)現(xiàn)n存儲(chǔ)表示存儲(chǔ)表示n基本類型的存儲(chǔ)受低層計(jì)算機(jī)的影響很大?;绢愋偷拇鎯?chǔ)受低層計(jì)算機(jī)的影響很大。n如:整數(shù)或?qū)崝?shù)幾乎就是在低層硬件中使用的數(shù)如:整數(shù)或?qū)崝?shù)幾乎就是在低層硬件中使用的數(shù)的整數(shù)或浮點(diǎn)數(shù)表示。的整數(shù)或浮點(diǎn)數(shù)表示。n對(duì)字符值,硬件或操作系統(tǒng)字符碼被使用。對(duì)字符值,硬件或操作系統(tǒng)字符碼被使用。n基本理由:基本理由:n如使用硬件存儲(chǔ)表示,則該類型數(shù)據(jù)基本操作可如使用硬件存儲(chǔ)表示,則該類型數(shù)據(jù)基本操作可以用硬件提供的基本操作實(shí)現(xiàn)。以用硬件提供的基本操作實(shí)現(xiàn)。n否則,將使用軟件仿真

18、,從而帶來效率損失。否則,將使用軟件仿真,從而帶來效率損失。 23基本數(shù)據(jù)類型的實(shí)現(xiàn)基本數(shù)據(jù)類型的實(shí)現(xiàn)n基本數(shù)據(jù)類型的屬性被類似地處理?;緮?shù)據(jù)類型的屬性被類似地處理。1、為了效率,很多語言設(shè)計(jì)為屬性由編譯器確定。、為了效率,很多語言設(shè)計(jì)為屬性由編譯器確定。n屬性本身并不存放在運(yùn)行時(shí)存儲(chǔ)表示中屬性本身并不存放在運(yùn)行時(shí)存儲(chǔ)表示中存儲(chǔ)表示通常直接使存儲(chǔ)表示通常直接使用硬件,如:用硬件,如:C、Fortran、Pascal等。等。2、數(shù)據(jù)對(duì)象的屬性可存放在描述子中作為運(yùn)行時(shí)數(shù)據(jù)對(duì)象的一、數(shù)據(jù)對(duì)象的屬性可存放在描述子中作為運(yùn)行時(shí)數(shù)據(jù)對(duì)象的一部分,如:部分,如:LISP、Prolog等,這里靈活性是主要

19、目標(biāo)。通常等,這里靈活性是主要目標(biāo)。通常硬件不提供對(duì)描述子的直接表示。硬件不提供對(duì)描述子的直接表示。n數(shù)據(jù)對(duì)象的表示通常獨(dú)立于存儲(chǔ)位置,這樣給定類型數(shù)據(jù)對(duì)象的表示通常獨(dú)立于存儲(chǔ)位置,這樣給定類型的每個(gè)對(duì)象有相同的表示(除位置不同),通常用需的每個(gè)對(duì)象有相同的表示(除位置不同),通常用需要的內(nèi)存塊的尺寸(大?。﹣砻枋?,同時(shí)也涉及屬性要的內(nèi)存塊的尺寸(大?。﹣砻枋?,同時(shí)也涉及屬性和值在塊中的布局。和值在塊中的布局。n通常內(nèi)存塊的每一個(gè)字或字節(jié)的地址用于表示數(shù)據(jù)對(duì)通常內(nèi)存塊的每一個(gè)字或字節(jié)的地址用于表示數(shù)據(jù)對(duì)象的位置。象的位置。24基本數(shù)據(jù)類型的實(shí)現(xiàn)基本數(shù)據(jù)類型的實(shí)現(xiàn)n操作的實(shí)現(xiàn)操作的實(shí)現(xiàn)1、直接作

20、為硬件操作、直接作為硬件操作n如:整數(shù)表示為硬件整數(shù),如:整數(shù)表示為硬件整數(shù),+,也直接用硬件實(shí)現(xiàn)。,也直接用硬件實(shí)現(xiàn)。2、作為過程或函數(shù)子程序、作為過程或函數(shù)子程序n如:平方根操作。如:平方根操作。n如數(shù)據(jù)對(duì)象不使用硬件表示,則所有操作必須是軟件仿真,如數(shù)據(jù)對(duì)象不使用硬件表示,則所有操作必須是軟件仿真,通常以子程序的形式。通常以子程序的形式。3、作為、作為In-line(內(nèi)嵌)代碼序列。(內(nèi)嵌)代碼序列。n這也是操作的軟件實(shí)現(xiàn)形式,但不是使用短小的子程序,這也是操作的軟件實(shí)現(xiàn)形式,但不是使用短小的子程序,而是將子程序中操作代碼拷貝到程序中的調(diào)用點(diǎn)。而是將子程序中操作代碼拷貝到程序中的調(diào)用點(diǎn)。

21、返回25數(shù)據(jù)對(duì)象的聲明數(shù)據(jù)對(duì)象的聲明n編寫程序時(shí),程序員確定數(shù)據(jù)對(duì)象的名字和類編寫程序時(shí),程序員確定數(shù)據(jù)對(duì)象的名字和類型。還要確定:生命期、在程序中的活動(dòng)范圍、型。還要確定:生命期、在程序中的活動(dòng)范圍、相關(guān)操作等。相關(guān)操作等。n聲明:一種程序語句,告知語言翻譯器關(guān)于數(shù)聲明:一種程序語句,告知語言翻譯器關(guān)于數(shù)據(jù)對(duì)象的信息。據(jù)對(duì)象的信息。n如聲明語句放在特定的程序或類定義中,則指明了如聲明語句放在特定的程序或類定義中,則指明了對(duì)象希望的生命期。對(duì)象希望的生命期。n聲明可以是顯式的,也可以是隱含的或缺省的。聲明可以是顯式的,也可以是隱含的或缺省的。聲明可以為數(shù)據(jù)對(duì)象賦上初始值,也可指定常聲明可以為數(shù)

22、據(jù)對(duì)象賦上初始值,也可指定常量值。量值。26數(shù)據(jù)對(duì)象的聲明數(shù)據(jù)對(duì)象的聲明n操作的聲明操作的聲明n翻譯時(shí)需要的關(guān)于操作的信息,主要是其基翻譯時(shí)需要的關(guān)于操作的信息,主要是其基調(diào)調(diào)signature。n對(duì)基本操作,不需顯式的參數(shù)類型和結(jié)果類對(duì)基本操作,不需顯式的參數(shù)類型和結(jié)果類型聲明,是語言中固有的。型聲明,是語言中固有的。n對(duì)程序員定義的操作,則必須指定之。對(duì)程序員定義的操作,則必須指定之。n如:如:sub: intfloatfloat = float Sub (int x,float y) 27聲明的目的聲明的目的1、選擇存儲(chǔ)表示、選擇存儲(chǔ)表示n聲明可以給語言翻譯器提供關(guān)于數(shù)據(jù)類型和數(shù)據(jù)對(duì)象屬

23、性的聲明可以給語言翻譯器提供關(guān)于數(shù)據(jù)類型和數(shù)據(jù)對(duì)象屬性的信息,使得翻譯器可以確定數(shù)據(jù)對(duì)象的最佳的存儲(chǔ)表示,從信息,使得翻譯器可以確定數(shù)據(jù)對(duì)象的最佳的存儲(chǔ)表示,從而減少整體的存儲(chǔ)需求和被翻譯程序的執(zhí)行時(shí)間。而減少整體的存儲(chǔ)需求和被翻譯程序的執(zhí)行時(shí)間。2、存儲(chǔ)管理、存儲(chǔ)管理聲明使其更為高效聲明使其更為高效n聲明可以提供關(guān)于數(shù)據(jù)對(duì)象生命期的信息,從而使得在程序聲明可以提供關(guān)于數(shù)據(jù)對(duì)象生命期的信息,從而使得在程序執(zhí)行過程中進(jìn)行更高效的存儲(chǔ)管理。執(zhí)行過程中進(jìn)行更高效的存儲(chǔ)管理。n如:在如:在C語言中,在子程序頭部聲明的數(shù)據(jù)對(duì)象有相同的生命語言中,在子程序頭部聲明的數(shù)據(jù)對(duì)象有相同的生命期,這樣可以在進(jìn)入子

24、程序時(shí)分配一個(gè)整體的塊來存放所有期,這樣可以在進(jìn)入子程序時(shí)分配一個(gè)整體的塊來存放所有的數(shù)據(jù)對(duì)象,而在退出子程序時(shí)釋放。的數(shù)據(jù)對(duì)象,而在退出子程序時(shí)釋放。n其它動(dòng)態(tài)創(chuàng)建的數(shù)據(jù)對(duì)象則需單獨(dú)處理。其它動(dòng)態(tài)創(chuàng)建的數(shù)據(jù)對(duì)象則需單獨(dú)處理。28聲明的目的聲明的目的3、多態(tài)操作、多態(tài)操作包括重載和真正多態(tài)包括重載和真正多態(tài)n大多數(shù)語言均使用特殊的符號(hào)來表示一組不同的操作,具體大多數(shù)語言均使用特殊的符號(hào)來表示一組不同的操作,具體操作的選擇將依賴于參數(shù)的數(shù)據(jù)類型。此即所謂重載。如:操作的選擇將依賴于參數(shù)的數(shù)據(jù)類型。此即所謂重載。如:可以是整數(shù)加、實(shí)數(shù)加,甚至可用于字符和字符串操作??梢允钦麛?shù)加、實(shí)數(shù)加,甚至可用于

25、字符和字符串操作。n重載是一個(gè)在語法層次上處理的概念。由編譯器處理。重載是一個(gè)在語法層次上處理的概念。由編譯器處理。n真正的多態(tài)通常是語義級(jí)別的概念,操作符的具體動(dòng)作的確真正的多態(tài)通常是語義級(jí)別的概念,操作符的具體動(dòng)作的確定是在運(yùn)行時(shí)進(jìn)行。如:函數(shù)語言中,類型可以作為參數(shù)帶定是在運(yùn)行時(shí)進(jìn)行。如:函數(shù)語言中,類型可以作為參數(shù)帶入,從而使函數(shù)的動(dòng)作的選擇依據(jù)類型實(shí)參而確定。恒等函入,從而使函數(shù)的動(dòng)作的選擇依據(jù)類型實(shí)參而確定。恒等函數(shù)就是典型的多態(tài)。數(shù)就是典型的多態(tài)。n面向?qū)ο蟮睦^承機(jī)制也提供了所謂的包含多態(tài)性,即子類的面向?qū)ο蟮睦^承機(jī)制也提供了所謂的包含多態(tài)性,即子類的對(duì)象可用于父類對(duì)象出現(xiàn)的地方

26、。對(duì)象可用于父類對(duì)象出現(xiàn)的地方。4、類型檢查、類型檢查最重要的目標(biāo),屬語義檢查,目標(biāo)是排最重要的目標(biāo),屬語義檢查,目標(biāo)是排錯(cuò),分靜態(tài)或動(dòng)態(tài)類型檢查。類型檢查提供了很好的錯(cuò),分靜態(tài)或動(dòng)態(tài)類型檢查。類型檢查提供了很好的防止錯(cuò)誤的機(jī)制。防止錯(cuò)誤的機(jī)制。返回29類型檢查和類型轉(zhuǎn)換類型檢查和類型轉(zhuǎn)換n計(jì)算機(jī)硬件固有的數(shù)據(jù)存儲(chǔ)表示通常不含類型信息。計(jì)算機(jī)硬件固有的數(shù)據(jù)存儲(chǔ)表示通常不含類型信息。數(shù)據(jù)上的基本原始操作也不需類型檢查。如一個(gè)位串:數(shù)據(jù)上的基本原始操作也不需類型檢查。如一個(gè)位串:1110010011n可能是整數(shù)、實(shí)數(shù)、字符串、或指令,沒有辦法來區(qū)可能是整數(shù)、實(shí)數(shù)、字符串、或指令,沒有辦法來區(qū)分。分

27、。n硬件提供的基本操作(如加法),不能檢查其參數(shù)是硬件提供的基本操作(如加法),不能檢查其參數(shù)是否為整數(shù),他們僅僅是位串。否為整數(shù),他們僅僅是位串。n匯編語言或機(jī)器語言編程中常見的錯(cuò)誤源于錯(cuò)誤的操匯編語言或機(jī)器語言編程中常見的錯(cuò)誤源于錯(cuò)誤的操作類型,這種錯(cuò)誤難于發(fā)現(xiàn),因?yàn)椴僮鞑⒉灰悦黠@的作類型,這種錯(cuò)誤難于發(fā)現(xiàn),因?yàn)椴僮鞑⒉灰悦黠@的方式失敗。操作可進(jìn)行,但結(jié)果沒有意義。方式失敗。操作可進(jìn)行,但結(jié)果沒有意義。n有時(shí)這種錯(cuò)誤可在連續(xù)的一串操作后出錯(cuò),有時(shí)程序停止也有時(shí)這種錯(cuò)誤可在連續(xù)的一串操作后出錯(cuò),有時(shí)程序停止也不出錯(cuò)。不出錯(cuò)。30類型檢查類型檢查n類型檢查:指檢查程序中每個(gè)操作均接類型檢查:指

28、檢查程序中每個(gè)操作均接收了正確數(shù)目的正確類型參數(shù),可在運(yùn)收了正確數(shù)目的正確類型參數(shù),可在運(yùn)行時(shí)完成,即動(dòng)態(tài)類型檢查;或編譯時(shí)行時(shí)完成,即動(dòng)態(tài)類型檢查;或編譯時(shí)檢查,即靜態(tài)類型檢查。檢查,即靜態(tài)類型檢查。 n高級(jí)語言的主要優(yōu)點(diǎn)之一:可提供對(duì)所高級(jí)語言的主要優(yōu)點(diǎn)之一:可提供對(duì)所有(或幾乎所有)操作的類型檢查。有(或幾乎所有)操作的類型檢查。31動(dòng)態(tài)類型檢查動(dòng)態(tài)類型檢查n需類型標(biāo)志,不需對(duì)變量聲明(即變量需類型標(biāo)志,不需對(duì)變量聲明(即變量是無類型的)。是無類型的)。n優(yōu)點(diǎn):編程的靈活性。程序員不需考慮類型優(yōu)點(diǎn):編程的靈活性。程序員不需考慮類型問題,具有較高靈活性。問題,具有較高靈活性。n缺點(diǎn):缺點(diǎn):

29、n程序難于調(diào)試,不能完全消去所有參數(shù)類型錯(cuò)誤。程序難于調(diào)試,不能完全消去所有參數(shù)類型錯(cuò)誤。程序測(cè)試不可能檢測(cè)所有的路徑。程序測(cè)試不可能檢測(cè)所有的路徑。n需要在執(zhí)行過程中保持類型信息,需存儲(chǔ)空間。需要在執(zhí)行過程中保持類型信息,需存儲(chǔ)空間。n動(dòng)態(tài)檢查需以軟件實(shí)現(xiàn),有時(shí)間花銷。動(dòng)態(tài)檢查需以軟件實(shí)現(xiàn),有時(shí)間花銷。32靜態(tài)類型檢查靜態(tài)類型檢查n需要的信息通常由程序員在聲明中及在其他語需要的信息通常由程序員在聲明中及在其他語言結(jié)構(gòu)中提供。需要:言結(jié)構(gòu)中提供。需要:1、對(duì)每個(gè)操作,其參數(shù)的數(shù)量、順序、類型及結(jié)果、對(duì)每個(gè)操作,其參數(shù)的數(shù)量、順序、類型及結(jié)果類型。類型。2、對(duì)每個(gè)變量,被關(guān)聯(lián)的命名數(shù)據(jù)對(duì)象的類型

30、。、對(duì)每個(gè)變量,被關(guān)聯(lián)的命名數(shù)據(jù)對(duì)象的類型。3、每個(gè)常量數(shù)據(jù)對(duì)象的類型。、每個(gè)常量數(shù)據(jù)對(duì)象的類型。n編譯器在翻譯的早期階段收集聲明中的類型信編譯器在翻譯的早期階段收集聲明中的類型信息,以后將用于類型檢查。息,以后將用于類型檢查。n靜態(tài)檢查涉及語言的多個(gè)方面:聲明、數(shù)據(jù)控靜態(tài)檢查涉及語言的多個(gè)方面:聲明、數(shù)據(jù)控制結(jié)構(gòu)、分開編譯等。制結(jié)構(gòu)、分開編譯等。33靜態(tài)與動(dòng)態(tài)類型檢查靜態(tài)與動(dòng)態(tài)類型檢查n靜態(tài)檢查將針對(duì)程序中的所有操作進(jìn)行,所有靜態(tài)檢查將針對(duì)程序中的所有操作進(jìn)行,所有可能的執(zhí)行路徑均被檢查。因此,關(guān)于類型錯(cuò)可能的執(zhí)行路徑均被檢查。因此,關(guān)于類型錯(cuò)誤的進(jìn)一步測(cè)試是不需要的,因而不需類型標(biāo)誤的進(jìn)一

31、步測(cè)試是不需要的,因而不需類型標(biāo)記和運(yùn)行時(shí)類型檢查。記和運(yùn)行時(shí)類型檢查。n在多數(shù)語言中,對(duì)某些語言結(jié)構(gòu)的靜態(tài)檢查在在多數(shù)語言中,對(duì)某些語言結(jié)構(gòu)的靜態(tài)檢查在某種情況下是不可能的。解決方案:某種情況下是不可能的。解決方案:n采用動(dòng)態(tài)類型檢查或不檢查。采用動(dòng)態(tài)類型檢查或不檢查。 34類型檢查類型檢查n強(qiáng)類型強(qiáng)類型n如果我們可以靜態(tài)地檢測(cè)程序中的所有類型錯(cuò)誤,如果我們可以靜態(tài)地檢測(cè)程序中的所有類型錯(cuò)誤,則稱語言是強(qiáng)賦類型的。則稱語言是強(qiáng)賦類型的。n通常類型為程序提供了一個(gè)安全層次。通常類型為程序提供了一個(gè)安全層次。n一個(gè)函數(shù)一個(gè)函數(shù)f: SR稱為類型安全的,如果稱為類型安全的,如果f的執(zhí)行不會(huì)產(chǎn)生的執(zhí)

32、行不會(huì)產(chǎn)生R以外的值。以外的值。n類型安全的操作均不需動(dòng)態(tài)檢查。類型安全的操作均不需動(dòng)態(tài)檢查。n很少有語言是真正強(qiáng)類型的。很少有語言是真正強(qiáng)類型的。n類型推導(dǎo)類型推導(dǎo)n如果解釋不會(huì)出現(xiàn)二義性,則類型聲明可以省去。如果解釋不會(huì)出現(xiàn)二義性,則類型聲明可以省去。可由語言實(shí)現(xiàn)推導(dǎo)出失去的類型信息。可由語言實(shí)現(xiàn)推導(dǎo)出失去的類型信息。 35類型轉(zhuǎn)換和類型的強(qiáng)制轉(zhuǎn)換類型轉(zhuǎn)換和類型的強(qiáng)制轉(zhuǎn)換n如果在類型檢查中,參數(shù)的實(shí)際類型和操作期望的類如果在類型檢查中,參數(shù)的實(shí)際類型和操作期望的類型間出現(xiàn)不匹配,則有兩種處理方案:型間出現(xiàn)不匹配,則有兩種處理方案:1、指出出錯(cuò)、指出出錯(cuò)2、通過強(qiáng)制(隱式的類型轉(zhuǎn)換)來改變實(shí)

33、際參數(shù)的類型為正確、通過強(qiáng)制(隱式的類型轉(zhuǎn)換)來改變實(shí)際參數(shù)的類型為正確類型。類型。n類型轉(zhuǎn)換的基調(diào)為:類型轉(zhuǎn)換的基調(diào)為:nconversion-op : type1type2n將一個(gè)對(duì)象變?yōu)榱硪活愋偷膶?duì)象。將一個(gè)對(duì)象變?yōu)榱硪活愋偷膶?duì)象。n大多數(shù)語言以兩種方式提供類型轉(zhuǎn)換:大多數(shù)語言以兩種方式提供類型轉(zhuǎn)換:1、作為固有函數(shù),程序員可顯式地調(diào)用。、作為固有函數(shù),程序員可顯式地調(diào)用。n如:將實(shí)數(shù)變成整數(shù),如:將實(shí)數(shù)變成整數(shù),Pascal中的中的round,C中的中的(int) x2、作為強(qiáng)制,自動(dòng)在類型失配時(shí)調(diào)用。、作為強(qiáng)制,自動(dòng)在類型失配時(shí)調(diào)用。n如:整數(shù)和實(shí)數(shù)間相加,總是先將整數(shù)轉(zhuǎn)變?yōu)閷?shí)數(shù)。如

34、:整數(shù)和實(shí)數(shù)間相加,總是先將整數(shù)轉(zhuǎn)變?yōu)閷?shí)數(shù)。36類型轉(zhuǎn)換和類型的強(qiáng)制轉(zhuǎn)換類型轉(zhuǎn)換和類型的強(qiáng)制轉(zhuǎn)換n強(qiáng)制的基本原則是不失信息。強(qiáng)制的基本原則是不失信息。n這類強(qiáng)制稱為這類強(qiáng)制稱為widening或或promotion。n如強(qiáng)制會(huì)丟失信息,則稱為變窄(如強(qiáng)制會(huì)丟失信息,則稱為變窄(narrowing)n類型轉(zhuǎn)換可能需要數(shù)據(jù)對(duì)象在運(yùn)行時(shí)存儲(chǔ)表示的改類型轉(zhuǎn)換可能需要數(shù)據(jù)對(duì)象在運(yùn)行時(shí)存儲(chǔ)表示的改變,如:變,如:COBOL和和PL/1中,數(shù)值以字符串方式存中,數(shù)值以字符串方式存放,要相加需先轉(zhuǎn)換,結(jié)果又要轉(zhuǎn)換為字符串。放,要相加需先轉(zhuǎn)換,結(jié)果又要轉(zhuǎn)換為字符串。n有的語言中不提供類型強(qiáng)制,類型不匹配即被視為

35、有的語言中不提供類型強(qiáng)制,類型不匹配即被視為出錯(cuò)。出錯(cuò)。n而有的語言則盡可能在不匹配時(shí)采用強(qiáng)制(如而有的語言則盡可能在不匹配時(shí)采用強(qiáng)制(如C)。)。返回37賦值和初始化賦值和初始化n賦值是一基本操作,改變值到數(shù)據(jù)對(duì)象的綁定,賦值是一基本操作,改變值到數(shù)據(jù)對(duì)象的綁定,這個(gè)改變是操作的副作用。這個(gè)改變是操作的副作用。n有的語言中,賦值語句也返回值(作為表達(dá)式有的語言中,賦值語句也返回值(作為表達(dá)式處理),該返回值包含被賦值拷貝的數(shù)據(jù)對(duì)象。處理),該返回值包含被賦值拷貝的數(shù)據(jù)對(duì)象。nPascal中,賦值的規(guī)約為:中,賦值的規(guī)約為:Assignment (:=) : integer1integer2v

36、oid.ninteger2值賦給值賦給integer1無顯式返回。無顯式返回。nC中,規(guī)約為:中,規(guī)約為:Assignment (=) : integer1integer2integer3ninteger2值的拷貝賦給值的拷貝賦給integer1,n同時(shí)創(chuàng)建并返回包含同時(shí)創(chuàng)建并返回包含integer2值的新數(shù)據(jù)對(duì)象值的新數(shù)據(jù)對(duì)象integer3.38賦值賦值n考慮賦值考慮賦值 X := Xn右邊的右邊的X稱右端值,用于引用包含在命名數(shù)據(jù)對(duì)象稱右端值,用于引用包含在命名數(shù)據(jù)對(duì)象中的值,中的值,r-值。值。n左邊的左邊的X用于引用將包含新值的數(shù)據(jù)對(duì)象的位置,用于引用將包含新值的數(shù)據(jù)對(duì)象的位置,稱為

37、左值,稱為左值,l-值。值。n賦值操作定義為:賦值操作定義為:1、計(jì)算第一個(gè)操作數(shù)表達(dá)式的左值(存儲(chǔ)位置)。、計(jì)算第一個(gè)操作數(shù)表達(dá)式的左值(存儲(chǔ)位置)。2、計(jì)算第二個(gè)操作數(shù)表達(dá)式的右值。、計(jì)算第二個(gè)操作數(shù)表達(dá)式的右值。3、將右值賦給左值對(duì)象。、將右值賦給左值對(duì)象。4、返回右值作為操作的結(jié)果。、返回右值作為操作的結(jié)果。39賦值賦值n賦賦值值的的兩兩個(gè)個(gè)不不同同視視角角(A=B)40初始化初始化n未初始化變量(或未初始化數(shù)據(jù)對(duì)象)是一個(gè)數(shù)據(jù)對(duì)未初始化變量(或未初始化數(shù)據(jù)對(duì)象)是一個(gè)數(shù)據(jù)對(duì)象,已被創(chuàng)建,但未賦值,即有象,已被創(chuàng)建,但未賦值,即有l(wèi)-值,但沒有值,但沒有r-值。值。n創(chuàng)建對(duì)象僅涉及存儲(chǔ)

38、塊的分配,塊中原有位模式不會(huì)創(chuàng)建對(duì)象僅涉及存儲(chǔ)塊的分配,塊中原有位模式不會(huì)改變。改變。n有的語言創(chuàng)建時(shí)不需初始化,初始化是在以后顯式地有的語言創(chuàng)建時(shí)不需初始化,初始化是在以后顯式地通過賦值進(jìn)行的。也可以在變量聲明時(shí)進(jìn)行顯式的初通過賦值進(jìn)行的。也可以在變量聲明時(shí)進(jìn)行顯式的初始化工作,此時(shí),需要編譯器產(chǎn)生相應(yīng)的賦值代碼并始化工作,此時(shí),需要編譯器產(chǎn)生相應(yīng)的賦值代碼并插入到目標(biāo)程序中。插入到目標(biāo)程序中。n在變量聲明后立即進(jìn)行初始化工作是程序員應(yīng)有的良在變量聲明后立即進(jìn)行初始化工作是程序員應(yīng)有的良好習(xí)慣之一。好習(xí)慣之一。n有的語言,創(chuàng)建時(shí)自動(dòng)初始化(隱式初始化)。有的語言,創(chuàng)建時(shí)自動(dòng)初始化(隱式初始化

39、)。n未初始化變量是程序錯(cuò)誤的重要原因之一。未初始化變量是程序錯(cuò)誤的重要原因之一。返回415.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 n整數(shù)整數(shù)n浮點(diǎn)實(shí)數(shù)浮點(diǎn)實(shí)數(shù)n定點(diǎn)實(shí)數(shù)定點(diǎn)實(shí)數(shù)n枚舉枚舉n布爾布爾42數(shù)值數(shù)據(jù)類型:整數(shù)數(shù)值數(shù)據(jù)類型:整數(shù)n規(guī)約:整數(shù)類型的對(duì)象除了其類型外,通常沒規(guī)約:整數(shù)類型的對(duì)象除了其類型外,通常沒有其它屬性。該類型的整數(shù)值的集合形成了數(shù)有其它屬性。該類型的整數(shù)值的集合形成了數(shù)學(xué)中研究的無限整數(shù)集的一個(gè)在有限界內(nèi)的有學(xué)中研究的無限整數(shù)集的一個(gè)在有限界內(nèi)的有序子集。序子集。n最大整數(shù)值有時(shí)被表示為一個(gè)定義的常量,如:最大整數(shù)值有時(shí)被表示為一個(gè)定義的常量,如:PASCAL中的中的max

40、int,其實(shí)際值由語言實(shí)現(xiàn),其實(shí)際值由語言實(shí)現(xiàn)者根據(jù)具體的計(jì)算機(jī)硬件確定。者根據(jù)具體的計(jì)算機(jī)硬件確定。nC語言有四種不同的整數(shù)規(guī)約:語言有四種不同的整數(shù)規(guī)約:int、short、long、char。43數(shù)值數(shù)據(jù)類型:整數(shù)(操作)數(shù)值數(shù)據(jù)類型:整數(shù)(操作)n整數(shù)數(shù)據(jù)對(duì)象上的操作:整數(shù)數(shù)據(jù)對(duì)象上的操作:n算術(shù)操作:二元算術(shù)操作的規(guī)約為:算術(shù)操作:二元算術(shù)操作的規(guī)約為:nBinOp : integer integer integern二元操作包括:、二元操作包括:、/、mod等。等。n一元算術(shù)操作的規(guī)約為:一元算術(shù)操作的規(guī)約為:UnaryOp : integer integern一元操作有:、以及其

41、它,如:絕對(duì)值。一元操作有:、以及其它,如:絕對(duì)值。44數(shù)值數(shù)據(jù)類型:整數(shù)(操作)數(shù)值數(shù)據(jù)類型:整數(shù)(操作)n關(guān)系操作:關(guān)系操作: nRelOp : integer integer Booleann關(guān)系操作有:大于、小于、相等、不等、等等關(guān)系操作有:大于、小于、相等、不等、等等n賦值:賦值:nassignment : integer integer voidnassignment : integer integer integern位操作:也分二元和一元。如:位操作:也分二元和一元。如:&、|、 realMax: real real real47數(shù)值數(shù)據(jù)類型:浮點(diǎn)實(shí)數(shù)數(shù)值數(shù)據(jù)類型:浮點(diǎn)

42、實(shí)數(shù)(實(shí)現(xiàn)實(shí)現(xiàn))n浮點(diǎn)實(shí)數(shù)的存儲(chǔ)表示通?;诘讓拥挠布硎?,浮點(diǎn)實(shí)數(shù)的存儲(chǔ)表示通常基于底層的硬件表示,其中存儲(chǔ)位置被分為尾數(shù)和指數(shù)。在大多數(shù)語其中存儲(chǔ)位置被分為尾數(shù)和指數(shù)。在大多數(shù)語言實(shí)現(xiàn),言實(shí)現(xiàn),IEEE 標(biāo)準(zhǔn)標(biāo)準(zhǔn)754被用為浮點(diǎn)數(shù)定義的被用為浮點(diǎn)數(shù)定義的標(biāo)準(zhǔn)。標(biāo)準(zhǔn)。n有單精度和雙精度浮點(diǎn)數(shù)之分。二者通常由硬有單精度和雙精度浮點(diǎn)數(shù)之分。二者通常由硬件算術(shù)操作支持其加、減、乘、除,而求冪操件算術(shù)操作支持其加、減、乘、除,而求冪操作通常由軟件仿真。作通常由軟件仿真。n如果同時(shí)支持單精度和雙精度,則必須給予程如果同時(shí)支持單精度和雙精度,則必須給予程序員相應(yīng)的聲明機(jī)制。序員相應(yīng)的聲明機(jī)制。返回48數(shù)

43、值數(shù)據(jù)類型:定點(diǎn)實(shí)數(shù)數(shù)值數(shù)據(jù)類型:定點(diǎn)實(shí)數(shù)(規(guī)約規(guī)約)n大多數(shù)硬件包含了整數(shù)和浮點(diǎn)數(shù)對(duì)象,然而,大多數(shù)硬件包含了整數(shù)和浮點(diǎn)數(shù)對(duì)象,然而,有很多應(yīng)用需要特定的有理數(shù),如:表示錢的有很多應(yīng)用需要特定的有理數(shù),如:表示錢的元和分的數(shù)據(jù)對(duì)象。這些數(shù)不能寫成整數(shù)或浮元和分的數(shù)據(jù)對(duì)象。這些數(shù)不能寫成整數(shù)或浮點(diǎn)數(shù)。因此,需要定點(diǎn)數(shù)。點(diǎn)數(shù)。因此,需要定點(diǎn)數(shù)。n定點(diǎn)數(shù)表示為固定長(zhǎng)度的數(shù)位,在給定位置為定點(diǎn)數(shù)表示為固定長(zhǎng)度的數(shù)位,在給定位置為小數(shù)點(diǎn)。如,小數(shù)點(diǎn)。如,COBOL語言中,有如下聲明:語言中,有如下聲明:X PICTURE 999V9949數(shù)值數(shù)據(jù)類型:定點(diǎn)實(shí)數(shù)數(shù)值數(shù)據(jù)類型:定點(diǎn)實(shí)數(shù)(實(shí)現(xiàn)實(shí)現(xiàn))n定點(diǎn)實(shí)

44、數(shù)可直接由硬件支持或用軟件仿真。如定點(diǎn)實(shí)數(shù)可直接由硬件支持或用軟件仿真。如PL/1中,中,DECLARE X FIXED DECIMAL(10,3),), Y FIXED DECIMAL(10,2),), Z FIXED DECIMAL(10,2););nX為帶為帶3個(gè)小數(shù)位的十位十進(jìn)制數(shù),個(gè)小數(shù)位的十位十進(jìn)制數(shù),Y和和Z有兩個(gè)小數(shù)位。有兩個(gè)小數(shù)位。X的的比例因子比例因子SF為為3,Y和和Z為為2。nvalue(X) = rvalue(X) 10-SFn即,即,X值為值為103.421,其右值為,其右值為103421。n考慮語句:考慮語句:Z X Yn實(shí)際加法的代碼為:實(shí)際加法的代碼為:Z (

45、X 10Y)/ 10n考慮考慮X Y,則:,則:n積積 rvalue(X) rvalue(Y)nSF = SF(X) + SF(Y),SF為小數(shù)點(diǎn)位置為小數(shù)點(diǎn)位置50數(shù)值數(shù)據(jù)類型:實(shí)數(shù)的不同表示數(shù)值數(shù)據(jù)類型:實(shí)數(shù)的不同表示n實(shí)實(shí)數(shù)數(shù)1.5的的不不同同表表示示返回51基本數(shù)據(jù)類型:枚舉類型基本數(shù)據(jù)類型:枚舉類型n我們通常希望一個(gè)變量只在一組符號(hào)值中選一我們通常希望一個(gè)變量只在一組符號(hào)值中選一值。如:變量值。如:變量StudentClass只有四種可能值:只有四種可能值:freshman, sophomore, junior, 和和senior。當(dāng)然,可以用整數(shù)來代表這四者,但必須由程當(dāng)然,可以用

46、整數(shù)來代表這四者,但必須由程序員來維護(hù)這類變量的操作安全性及使用的類序員來維護(hù)這類變量的操作安全性及使用的類型正確性。型正確性。n規(guī)約:枚舉是一個(gè)不同值的有序列表,由程序規(guī)約:枚舉是一個(gè)不同值的有序列表,由程序員確定其文字名及它們的順序。如員確定其文字名及它們的順序。如C中:中:Emun StudentClass Fresh, Soph, Junior, Senior;Emun EmploySex Male, Female;52基本數(shù)據(jù)類型:枚舉類型基本數(shù)據(jù)類型:枚舉類型(實(shí)現(xiàn)實(shí)現(xiàn))n枚舉類型的基本操作為關(guān)系操作、賦值,枚舉類型的基本操作為關(guān)系操作、賦值,以及后繼和前驅(qū)。以及后繼和前驅(qū)。n實(shí)現(xiàn)

47、:枚舉類型數(shù)據(jù)對(duì)象的存儲(chǔ)表示是實(shí)現(xiàn):枚舉類型數(shù)據(jù)對(duì)象的存儲(chǔ)表示是直接的,在枚舉序列中的每個(gè)值在運(yùn)行直接的,在枚舉序列中的每個(gè)值在運(yùn)行時(shí)被表示為整數(shù),通常為時(shí)被表示為整數(shù),通常為0、1、2、之一。有的語言也可由程序員指定值。之一。有的語言也可由程序員指定值。枚舉類型上的操作的實(shí)現(xiàn)也是直接的,枚舉類型上的操作的實(shí)現(xiàn)也是直接的,直接使用硬件提供的基本操作。直接使用硬件提供的基本操作。返回53基本數(shù)據(jù)類型:布爾類型基本數(shù)據(jù)類型:布爾類型n大多數(shù)語言提供數(shù)據(jù)類型表示大多數(shù)語言提供數(shù)據(jù)類型表示true和和false,通常稱為布爾或邏輯類型。通常稱為布爾或邏輯類型。n規(guī)約:布爾類型的數(shù)據(jù)對(duì)象取二值之一。在某

48、規(guī)約:布爾類型的數(shù)據(jù)對(duì)象取二值之一。在某些語言中,可將其考慮為語言定義的枚舉類型。些語言中,可將其考慮為語言定義的枚舉類型。Type Boolean = (false, true);n其順序?yàn)槠漤樞驗(yàn)閒alse true。n布爾類型對(duì)象上的操作為一般的邏輯操作。布爾類型對(duì)象上的操作為一般的邏輯操作。54基本數(shù)據(jù)類型:布爾類型基本數(shù)據(jù)類型:布爾類型(實(shí)現(xiàn)實(shí)現(xiàn))n實(shí)現(xiàn):布爾數(shù)據(jù)對(duì)象的存儲(chǔ)表示是一個(gè)實(shí)現(xiàn):布爾數(shù)據(jù)對(duì)象的存儲(chǔ)表示是一個(gè)二進(jìn)制位。通常,為了可以直接訪問,二進(jìn)制位。通常,為了可以直接訪問,而表示為單個(gè)可編址單元。而表示為單個(gè)可編址單元。n用一個(gè)特殊位來表示,用一個(gè)特殊位來表示,0為假,為假

49、,1為真。為真。n或者,或者,0為假,其余非零值為真。為假,其余非零值為真。n也有其它數(shù)據(jù)類型可用于布爾型的表示,也有其它數(shù)據(jù)類型可用于布爾型的表示,而而C中沒有布爾型。中沒有布爾型。返回555.3 復(fù)合數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型n字符串字符串n指針指針n文件文件56字符串字符串n字符串是一個(gè)字符構(gòu)成的序列。幾乎所字符串是一個(gè)字符構(gòu)成的序列。幾乎所有的語言均有字符串類型。有的語言均有字符串類型。n規(guī)約和語法:至少有三種不同的字符串規(guī)約和語法:至少有三種不同的字符串類型處理方式:類型處理方式:1、固定聲明長(zhǎng)度。在程序中聲明字符串對(duì)象、固定聲明長(zhǎng)度。在程序中聲明字符串對(duì)象的固定長(zhǎng)度。賦給該對(duì)象的值總是該

50、長(zhǎng)度的的固定長(zhǎng)度。賦給該對(duì)象的值總是該長(zhǎng)度的字符串。新串值賦給該數(shù)據(jù)對(duì)象將導(dǎo)致長(zhǎng)度字符串。新串值賦給該數(shù)據(jù)對(duì)象將導(dǎo)致長(zhǎng)度調(diào)整:減短或補(bǔ)足。調(diào)整:減短或補(bǔ)足。PASCAL和和COBOL中中常采用此技術(shù)。常采用此技術(shù)。57字符串字符串2、有界變長(zhǎng)。字符串?dāng)?shù)據(jù)對(duì)象具有固定的最大長(zhǎng)度,、有界變長(zhǎng)。字符串?dāng)?shù)據(jù)對(duì)象具有固定的最大長(zhǎng)度,但實(shí)際的字符串值長(zhǎng)度可以小于此,甚至是空串。但實(shí)際的字符串值長(zhǎng)度可以小于此,甚至是空串。執(zhí)行過程中,字符串長(zhǎng)度會(huì)發(fā)生變化,但超長(zhǎng)時(shí)需執(zhí)行過程中,字符串長(zhǎng)度會(huì)發(fā)生變化,但超長(zhǎng)時(shí)需減短。減短。3、無界長(zhǎng)度。字符串?dāng)?shù)據(jù)對(duì)象可以具有任意長(zhǎng)度,、無界長(zhǎng)度。字符串?dāng)?shù)據(jù)對(duì)象可以具有任意長(zhǎng)度

51、,而且長(zhǎng)度可以在執(zhí)行過程中動(dòng)態(tài)地?zé)o界變化。而且長(zhǎng)度可以在執(zhí)行過程中動(dòng)態(tài)地?zé)o界變化。n前兩種方法允許翻譯時(shí)確定每個(gè)字符串?dāng)?shù)據(jù)對(duì)前兩種方法允許翻譯時(shí)確定每個(gè)字符串?dāng)?shù)據(jù)對(duì)象的存儲(chǔ)分配。第三種方法需要存儲(chǔ)的運(yùn)行時(shí)象的存儲(chǔ)分配。第三種方法需要存儲(chǔ)的運(yùn)行時(shí)動(dòng)態(tài)分配。動(dòng)態(tài)分配。58字符串:操作字符串:操作(1)1、串聯(lián)、串聯(lián)n將兩個(gè)字符串連接在一起以形成一個(gè)長(zhǎng)串。如:將兩個(gè)字符串連接在一起以形成一個(gè)長(zhǎng)串。如:“BLOCK”|“HEAD”產(chǎn)生產(chǎn)生“BLOCKHEAD”。2、串上的關(guān)系操作、串上的關(guān)系操作n包括一般的相等、大于、小于等均可用于字符串。包括一般的相等、大于、小于等均可用于字符串。由于字符本身是有序

52、的,因此可以擴(kuò)展形成字符串由于字符本身是有序的,因此可以擴(kuò)展形成字符串的字典序。的字典序。3、使用定位下標(biāo)的子串選擇、使用定位下標(biāo)的子串選擇n很多語言提供了選擇子串的操作。如:很多語言提供了選擇子串的操作。如:FORTRAN中,中,NEXT STR (6:10)將將STR中從位置中從位置6到到10的的5個(gè)字符賦給個(gè)字符賦給NEXT。如果允許子串選擇出現(xiàn)在賦。如果允許子串選擇出現(xiàn)在賦值的兩邊,則其語義必須仔細(xì)定義。值的兩邊,則其語義必須仔細(xì)定義。59字符串:操作字符串:操作(2)4、I/O格式格式n程序設(shè)計(jì)語言中提供的某些字符串操作常常程序設(shè)計(jì)語言中提供的某些字符串操作常常是為了幫助輸出數(shù)據(jù)的格

53、式化或?qū)⒏袷交氖菫榱藥椭敵鰯?shù)據(jù)的格式化或?qū)⒏袷交妮斎肓鞣纸绯尚〉臄?shù)據(jù)單元。如:輸入流分界成小的數(shù)據(jù)單元。如:C和和FORTRAN中的格式化中的格式化I/O特性。特性。5、使用模式匹配的子串選擇、使用模式匹配的子串選擇n由于不知道子串在大串中的位置,模式匹配由于不知道子串在大串中的位置,模式匹配則成為一種重要的方法。如:則成為一種重要的方法。如:SNOBOL4就就提供了強(qiáng)大的模式匹配操作。提供了強(qiáng)大的模式匹配操作。60字符串:實(shí)現(xiàn)字符串:實(shí)現(xiàn)n三種不同的方法使用不同的存儲(chǔ)表示。對(duì)固定三種不同的方法使用不同的存儲(chǔ)表示。對(duì)固定長(zhǎng)度的字符串操作可以有硬件支持。其它方式長(zhǎng)度的字符串操作可以有硬件支

54、持。其它方式則需要軟件仿真。則需要軟件仿真。返回61指針指針n通常,不是引入一系列可變長(zhǎng)的鏈接數(shù)據(jù)對(duì)象類型,通常,不是引入一系列可變長(zhǎng)的鏈接數(shù)據(jù)對(duì)象類型,而是提供設(shè)施來允許使用指針將數(shù)據(jù)對(duì)象鏈接在一起而是提供設(shè)施來允許使用指針將數(shù)據(jù)對(duì)象鏈接在一起而形成某種結(jié)構(gòu),這樣需要如下幾個(gè)語言特性:而形成某種結(jié)構(gòu),這樣需要如下幾個(gè)語言特性:1、基本數(shù)據(jù)類型指針(、基本數(shù)據(jù)類型指針(pointer),也稱引用或訪),也稱引用或訪問類型。問類型。n指針對(duì)象包含另一個(gè)數(shù)據(jù)對(duì)象的位置(左值),空指針為指針對(duì)象包含另一個(gè)數(shù)據(jù)對(duì)象的位置(左值),空指針為nil或或null。2、定長(zhǎng)數(shù)據(jù)對(duì)象的創(chuàng)建操作、定長(zhǎng)數(shù)據(jù)對(duì)象的創(chuàng)

55、建操作n創(chuàng)建操作分配一個(gè)存儲(chǔ)塊,并返回其左值,可用于存放對(duì)創(chuàng)建操作分配一個(gè)存儲(chǔ)塊,并返回其左值,可用于存放對(duì)象的右值。這種創(chuàng)建操作和聲明創(chuàng)建方式有兩個(gè)差別:象的右值。這種創(chuàng)建操作和聲明創(chuàng)建方式有兩個(gè)差別:na.數(shù)據(jù)對(duì)象不需要名字?jǐn)?shù)據(jù)對(duì)象不需要名字nb.可在程序執(zhí)行中任何位置創(chuàng)建可在程序執(zhí)行中任何位置創(chuàng)建3、取引用操作、取引用操作n允許跟隨指針到其指向的對(duì)象。允許跟隨指針到其指向的對(duì)象。62指針數(shù)據(jù)類型:規(guī)約指針數(shù)據(jù)類型:規(guī)約n指針數(shù)據(jù)類型定義一類數(shù)據(jù)對(duì)象,它們的值是指針數(shù)據(jù)類型定義一類數(shù)據(jù)對(duì)象,它們的值是其它數(shù)據(jù)對(duì)象的位置。指針類型的對(duì)象有兩種其它數(shù)據(jù)對(duì)象的位置。指針類型的對(duì)象有兩種處理方式:

56、處理方式:1、指針只能引用單個(gè)類型的數(shù)據(jù)對(duì)象。、指針只能引用單個(gè)類型的數(shù)據(jù)對(duì)象。n如如C、PASCAL和和Ada等語言,需要進(jìn)行指針類型聲明和等語言,需要進(jìn)行指針類型聲明和相應(yīng)的靜態(tài)類型檢查。相應(yīng)的靜態(tài)類型檢查。2、指針可以引用任意類型的數(shù)據(jù)對(duì)象。、指針可以引用任意類型的數(shù)據(jù)對(duì)象。n如:如:SMALLTALK語言,數(shù)據(jù)對(duì)象本身帶有描述子,需要語言,數(shù)據(jù)對(duì)象本身帶有描述子,需要進(jìn)行動(dòng)態(tài)類型檢查。也可以不進(jìn)行類型檢查。進(jìn)行動(dòng)態(tài)類型檢查。也可以不進(jìn)行類型檢查。63指針數(shù)據(jù)類型:操作指針數(shù)據(jù)類型:操作n創(chuàng)建操作為一定長(zhǎng)數(shù)據(jù)對(duì)象分配存儲(chǔ)空間,創(chuàng)建操作為一定長(zhǎng)數(shù)據(jù)對(duì)象分配存儲(chǔ)空間,并創(chuàng)建指向該新數(shù)據(jù)對(duì)象的

57、指針,該指針可并創(chuàng)建指向該新數(shù)據(jù)對(duì)象的指針,該指針可以存放到指針數(shù)據(jù)對(duì)象中。如:以存放到指針數(shù)據(jù)對(duì)象中。如:PASCAL和和Ada中的中的new,C中的系統(tǒng)函數(shù)中的系統(tǒng)函數(shù)malloc。n選擇操作允許跟蹤指針值以達(dá)到指定的數(shù)據(jù)選擇操作允許跟蹤指針值以達(dá)到指定的數(shù)據(jù)對(duì)象。因?yàn)橹羔樖瞧胀ǖ臄?shù)據(jù)對(duì)象,指針數(shù)對(duì)象。因?yàn)橹羔樖瞧胀ǖ臄?shù)據(jù)對(duì)象,指針數(shù)據(jù)對(duì)象本身也可以用一般的選擇機(jī)制。如:據(jù)對(duì)象本身也可以用一般的選擇機(jī)制。如:*用于取指針的右值,并將其變成左值,用用于取指針的右值,并將其變成左值,用左值訪問數(shù)據(jù)。左值訪問數(shù)據(jù)。64指針數(shù)據(jù)類型:實(shí)現(xiàn)指針數(shù)據(jù)類型:實(shí)現(xiàn)n指針數(shù)據(jù)對(duì)象被表示為存儲(chǔ)位置(包含指針數(shù)

58、據(jù)對(duì)象被表示為存儲(chǔ)位置(包含另一個(gè)存儲(chǔ)位置的地址,該地址是表示另一個(gè)存儲(chǔ)位置的地址,該地址是表示該指針指向的數(shù)據(jù)對(duì)象的存儲(chǔ)塊的基地該指針指向的數(shù)據(jù)對(duì)象的存儲(chǔ)塊的基地址)。指針值的兩種存儲(chǔ)表示:址)。指針值的兩種存儲(chǔ)表示:1、絕對(duì)地址:指針值可以表示為數(shù)據(jù)對(duì)象所、絕對(duì)地址:指針值可以表示為數(shù)據(jù)對(duì)象所在存儲(chǔ)塊的實(shí)際存儲(chǔ)地址。在存儲(chǔ)塊的實(shí)際存儲(chǔ)地址。2、相對(duì)地址:指針值可以表示為從某基地址、相對(duì)地址:指針值可以表示為從某基地址開始的位移量。數(shù)據(jù)對(duì)象是被分配在一個(gè)大開始的位移量。數(shù)據(jù)對(duì)象是被分配在一個(gè)大的存儲(chǔ)堆中。的存儲(chǔ)堆中。65指針數(shù)據(jù)類型:實(shí)現(xiàn)指針數(shù)據(jù)類型:實(shí)現(xiàn)n當(dāng)使用絕對(duì)地址時(shí),由創(chuàng)建操作創(chuàng)建的

59、數(shù)據(jù)對(duì)象可以當(dāng)使用絕對(duì)地址時(shí),由創(chuàng)建操作創(chuàng)建的數(shù)據(jù)對(duì)象可以分配在存儲(chǔ)區(qū)中的任意地方,通常,該分配發(fā)生在一分配在存儲(chǔ)區(qū)中的任意地方,通常,該分配發(fā)生在一個(gè)存儲(chǔ)堆區(qū)域中。使用絕對(duì)地址的選擇操作將更為高個(gè)存儲(chǔ)堆區(qū)域中。使用絕對(duì)地址的選擇操作將更為高效,因?yàn)橹羔樦堤峁┝酥苯拥脑L問。缺點(diǎn)是存儲(chǔ)管理效,因?yàn)橹羔樦堤峁┝酥苯拥脑L問。缺點(diǎn)是存儲(chǔ)管理更為困難,因?yàn)閿?shù)據(jù)對(duì)象不能隨意在存儲(chǔ)中移動(dòng),存更為困難,因?yàn)閿?shù)據(jù)對(duì)象不能隨意在存儲(chǔ)中移動(dòng),存儲(chǔ)的回收必須逐個(gè)進(jìn)行。儲(chǔ)的回收必須逐個(gè)進(jìn)行。n使用相對(duì)地址需要一個(gè)存儲(chǔ)塊的初始分配,可以是每使用相對(duì)地址需要一個(gè)存儲(chǔ)塊的初始分配,可以是每種類型各有一個(gè)區(qū)域,也可以是所有數(shù)據(jù)

60、對(duì)象共有一種類型各有一個(gè)區(qū)域,也可以是所有數(shù)據(jù)對(duì)象共有一個(gè)區(qū)域。每個(gè)區(qū)域管理為一個(gè)堆。缺點(diǎn)是選擇操作需個(gè)區(qū)域。每個(gè)區(qū)域管理為一個(gè)堆。缺點(diǎn)是選擇操作需要更大的代價(jià),優(yōu)點(diǎn)是存儲(chǔ)塊可以整體任意移動(dòng),整要更大的代價(jià),優(yōu)點(diǎn)是存儲(chǔ)塊可以整體任意移動(dòng),整個(gè)區(qū)域可以處理為一個(gè)數(shù)據(jù)對(duì)象。個(gè)區(qū)域可以處理為一個(gè)數(shù)據(jù)對(duì)象。返回66文件和文件和I/On文件是一種數(shù)據(jù)結(jié)構(gòu),具有兩個(gè)特殊性質(zhì):文件是一種數(shù)據(jù)結(jié)構(gòu),具有兩個(gè)特殊性質(zhì):1、通常表示在外存上,比其它數(shù)據(jù)類型也要大得多。、通常表示在外存上,比其它數(shù)據(jù)類型也要大得多。2、生命期長(zhǎng),通常會(huì)跨越創(chuàng)建它的程序的生命期而、生命期長(zhǎng),通常會(huì)跨越創(chuàng)建它的程序的生命期而存在。存在。n順序文

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論