【正文】
? (9)begin ? (10) c ? (11)end 圖 1027 嵌套過程作為參數(shù)傳遞 p ar am c 存取鏈 m b f . 存取鏈圖 10 28 連同存取鏈一起 傳遞過程實(shí)參 各種數(shù)據(jù)對(duì)象的存儲(chǔ)分配 數(shù)據(jù)對(duì)象 name 名字,名稱 type 類型 location 內(nèi)存地址 value 值 ponent 成分 除實(shí)參是過程情況外,還有實(shí)參為數(shù)組,實(shí)參為標(biāo)號(hào)等情況。 ? (8)begin m := 0。 ? (6) function f(n:integer):integr。 ? (4)procedure c。 ? (2)procedure b(function h(n:integer):integer)。 begin m:=0。 function f(n:integer):integr。 procedure c。 begin m:=3。 procedure b(function h(n:integer):integer)。 (10)} 在一個(gè)值調(diào)用過程中使用指針的 C程序 在 C程序中無傳地址所以用指針實(shí)現(xiàn)。 (8) swap(a,b)。 *y=temp。 (4) temp=*x。) a1所指單元 的內(nèi)容置為 a2所指單元值 4( y :=temp) a2所指單元 的內(nèi)容置為 temp的 值 (1)swap(x,y) (2)int *x,*y。 begin temp:=x。 其結(jié)果等價(jià)于執(zhí)行下列運(yùn)算: x :=a; y :=b; temp :=x; x :=y; y :=temp 傳地址 的實(shí)現(xiàn) ( call by reference )(callbyaddress)(callbylocation) 把實(shí)在參數(shù)的地址傳遞給相應(yīng)的形參,即 調(diào)用過程把一個(gè)指向?qū)崊⒌拇鎯?chǔ)地址的指針傳遞給被調(diào)用過程相應(yīng)的形參: 1實(shí)在參數(shù)是一個(gè)名字,或具有左值的表達(dá)式 傳遞左值 2實(shí)在參數(shù)是無左值的表達(dá)式 計(jì)算值,放入一存儲(chǔ)單元,傳此存儲(chǔ)單元地址 3目標(biāo)代碼中,被調(diào)用過程對(duì)形參的引用變成對(duì)傳遞給被調(diào)用過程的指針的間接引用 procedure swap( x,y:integer)。 begin temp:=x。 procedure swap( x,y:integer)。 ? ,并將其放在對(duì)應(yīng)形式單元開辟的空間中。 swap(a,b); 其結(jié)果: a,b調(diào)用前的值不改變。 ? 傳值(值調(diào)用) 特點(diǎn)是對(duì)形式參數(shù)的任何運(yùn)算不影響實(shí)參的值。writeln(?b=?,b) (14)end. 帶有過程 swap的 PASCAL程序 ? 傳地址(變量參數(shù)) 例如:過程 swap(var x,y:integer)。 (12) swap(a,b)。 (10)begin (11) a:=1。 (7) x:=y。 (4) var temp:integer。 (2)var a,b:integer。 a[j]:=x (5) end。 (4) x:=a[i]。 (2) var x:integer。 數(shù) 組 C 數(shù) 組 C 數(shù) 組 B 數(shù) 組 B C 的 向 量 內(nèi) 情 eB5的 T O PC 的 內(nèi) 情 向 量B4的 T O PB4 的 T O PB 的 內(nèi) 情 向 量B 的 內(nèi) 情 向 量 z Z B1的 T O PB1 的 T O P D I S P L A YD I S P L A Y 形式單元 m , n 2 形式單元 m , n 2連接數(shù)據(jù)連 接 數(shù) 據(jù) A 的 T O PA 的 T O P ∶ ∶ ∶ ∶ ( e ) ( f)( e ) 進(jìn)入分程序 B4分配數(shù)組 C 之后; ( f ) 進(jìn)入分程序 B5 。 ( b) 進(jìn) 入 分 程 序 B1。當(dāng)進(jìn)入分程序時(shí)它含現(xiàn)行棧頂?shù)刂?,以后,用來定義棧的新高度(分程序的 TOP值); ( 2)分程序的局部變量, 數(shù)組內(nèi)情向量和臨時(shí)工作單元。 5. 過程所轄的各分程序的局部數(shù)據(jù)單元。 ,共四項(xiàng): ( 1)老 SP值; ( 2)返回地址; (3)全局 DISP