参数传递之传名,传地址,得结果,传值

编译原理速成,参数传递之传名,传地址,得结果,传值(四)_哔哩哔哩_bilibili

 学习自上面的文章。

题目1:

参数传递之传名,传地址,得结果,传值_第1张图片

 (1)传名。

参数传递之传名,传地址,得结果,传值_第2张图片

 (2)传地址。(注意观察,A+B变成了临时变量T1,而在传名过程中,A+B仍是A+B)

参数传递之传名,传地址,得结果,传值_第3张图片

 (3)得结果。

先得到对应的x,y,z的值,再计算得到新的x,y,z的值,再把值送回原来的对应的空间(如Z的值送回给A)。

参数传递之传名,传地址,得结果,传值_第4张图片

 (4)传值。(与原来的值一样)

           A=3

 我学习她的方法,写的解题步骤。参数传递之传名,传地址,得结果,传值_第5张图片参数传递之传名,传地址,得结果,传值_第6张图片

题目2:

 参数传递之传名,传地址,得结果,传值_第7张图片

 参数传递之传名,传地址,得结果,传值_第8张图片

 参数传递之传名,传地址,得结果,传值_第9张图片

 

参数传递之传名,传地址,得结果,传值_第10张图片

 

例题4:

对于下面程序段

program test (input, output)

var i, j: integer;

procedure CAL(x, y: integer);

begin

y:=y*y; x:=x-y; y:=y-x

end;

begin

i:=2; j:=3; CAL(i, j)

writeln(j)

end.

若参数传递的方法分别为(1)传值、(2)传地址,(3)传名,请写出程序执行的输出结果。

参数传递之传名,传地址,得结果,传值_第11张图片

 

你可能感兴趣的:(笔记)