理解编程语言中的参数传递问题

时间:2013-06-02 12:05:22

标签: parameter-passing

我试图找出究竟是什么参数传递方法。他们做了什么,他们有什么不同......我有以下子程序:

subprogram p(x)
   a[1] = 6;
   element = 2;
   x = x + 3;
end

a是一个数组,只有两个元素。

a[1] = 1 
a[2] = 2
element = 1 

我们称子程序如下:

p(a[element])

如果子程序使用“按值传递”,“按结果传递”,“按值传递”,“按引用传递”或“按名称传递”方法,结果会是什么。

我真的很困惑。提前谢谢。

1 个答案:

答案 0 :(得分:0)

该语言影响变量的范围以及在调用函数或定义函数时它们的绑定方式。但是,可以安全地假设静态,词法范围规则适用。

按值传递:仅更改显式命名的变量。

a[1] = 6
a[2] = 2
element = 2

按参考传递:更改明确命名的变量和传入的内容。

a[1] = 9
a[2] = 2
element = 2

传递结果:更改明确命名的变量和传入的内容。

a[1] = 9
a[2] = 2
element = 2

按值传递 - 结果:更改显式命名的变量和传入的内容。

a[1] = 9
a[2] = 2
element = 2

按名称传递:更改明确命名的变量和传入的内容。

a[1] = 6
a[2] = 5
element = 2