call by value 方式:
調(diào)用時子程序得到的是參數(shù)值的副本,子程序中對形參的改變其實只是影響了該副本的值,但在返回主程序后該副本會被丟棄,因此在主程序中按值調(diào)用的參數(shù)仍保持原來的值.
例如SUB(A,B,C)中,若形參A是by value的,則在MAIN中CALL SUB(X,Y,A[X])后,X仍為1.
call by address/reference 方式:
調(diào)用時子程序得到的是實際參數(shù)的內(nèi)存地址,因此在子程序中改變形參的值時,實際會導致對該形參所對應的地址處的內(nèi)存數(shù)據(jù)的變化,即直接修改的是主程序中的變量的值,返回主程序后該參數(shù)所對應的變量值會產(chǎn)生變化.
例如SUB(A,B,C)中,若形參A是by reference的,則在MAIN中CALL SUB(X,Y,A[X])后,X會變?yōu)?.
call by name 方式:
有點類似于宏擴展的方式,調(diào)用的參數(shù)并非是在調(diào)用前計算出來,而是在子程序中每個引用所對應的形參的地方都重新進行計算,因此有延遲計算的作用.例如你例子中,若主程序調(diào)用SUB時是by name的,則實際執(zhí)行的情況是:
A=B --> X=Y --> X=2
C=12 --> A[X]=12 --> A[2]=12
這里就看到,因為X的值先變化過,所以在對C賦值的時候,實際影響的是A[2],而不是A[1].
程序設計 call by value ,call by address ,call by name
程序設計 call by value ,call by address ,call by name
假設有一段code內(nèi)容大致如下:
----------------------------------
MAIN()
BEGIN
A[1:4]={1,2,3,4};
X = 1;
Y = 2;
CALL SUB(X,Y,A[X]);
END
SUB(A,B,C)
BEGIN
A = B;
C = 12;
END
----------------------------------
在下列三種呼叫方式下
程式執(zhí)行的結(jié)果各為何?
希望能附上說明給我,這樣我比較能理解
call by value
call by address (reference)
call by name
假設有一段code內(nèi)容大致如下:
----------------------------------
MAIN()
BEGIN
A[1:4]={1,2,3,4};
X = 1;
Y = 2;
CALL SUB(X,Y,A[X]);
END
SUB(A,B,C)
BEGIN
A = B;
C = 12;
END
----------------------------------
在下列三種呼叫方式下
程式執(zhí)行的結(jié)果各為何?
希望能附上說明給我,這樣我比較能理解
call by value
call by address (reference)
call by name
其他人氣:178 ℃時間:2020-01-27 11:34:31
優(yōu)質(zhì)解答
我來回答
類似推薦
- (B)Could I call you by your first name
- call和name的區(qū)別
- call by one's
- call name的區(qū)別
- You can call me by my English name這個by在這里的含義?
- 若f(sinx)=cos2x,那么f(cos x)=?
- 將拋物線y=x2+bx+c先向右平移2個單位,再向上平移3個單位得到的拋物線是y=x2+4x+5 求b,c的值分別是多少?
- 用反證法證明命題“若a、b∈N,ab能被5整除,則a,b中至少有一個能被5整除.
- 用對牛彈琴造句.
- 鐵塊是銀白色的,鐵粉是黑色的;銀片是銀白色的,銀粉是黑色的.所有金屬粉末都是黑色的嗎?
- 如圖(1),點M、N分別是正方形ABCD的邊AB、AD的中點,連接CN、DM. (1)判斷CN、DM的關系
- 給鐵器表面噴漆膜,可以防止鐵器表面銹蝕,現(xiàn)有150立方厘米的漆涂了5平方米的表面,則漆膜的厚度約是多少?)
猜你喜歡
- 1銳角三角形怎么畫
- 2把You should not watch too much TV .改成祈使句
- 3書是燈,讀書照亮了前面的路;書是橋,讀書接通了彼此的岸;書是帆,讀書推動了人生的船.仿寫,
- 4今天就要的!
- 5地球儀有什么好處和用處
- 61,2,4,8,16,32,64,128,256,512,1024 ,2048.4056.8112.16224.32448.之間有什么規(guī)律 第2010個是多少?
- 7世界上第四長的河流
- 8數(shù)軸上表示相反數(shù)的兩個和原點有什么關系?
- 9【F(X)=a的X次方-X*Lna】的導數(shù)怎么求
- 10人教版高一化學必修一哪幾課最重要,要具體章節(jié)名
- 11If you have some thing,say!If nothing,go home!
- 12在天正建筑里怎樣生成立面圖 剖面圖