过程参数的传递方式有几种?简述“传地址”和“传值”的实现原理。答:参数的传递方式有下述几种:“传
过程参数的传递方式有几种?简述“传地址”和“传值”的实现原理。
答:
参数的传递方式有下述几种:
“传值”- Call by Value。
“传地址”- Call by Address。
“换名”- Call by Name。
“得结果”- Value-result。
“传值”方式,这是最简单的参数传递方法。即将实参计算出它的值,然后把它传给被调过程。具体来讲是这样的:
1.形式参数当作过程的局部变量处理,即在被调过程的活动记录中开辟了形参的存储空间,这些存储位置即是我们所说的实参或形式单元。
2.调用过程计算实参的值,并将它们的右值(r-value) 放在为形式单元开辟的空间中。
3.被调用过程执行时,就像使用局部变量一样使用这些形式单元。
“传地址”方式,也称作传地址,或引用调用。调用过程传给被调过程的是指针,指向实参存储位置的指针。
1.如实参是一个名字或是具有左值的表达式,则左值本身传递过去。
2.如实参是一个表达式,比方a+b或2,而没有左值,则表达式先求值,并存入某一位置,然后该位置的地址传递过去。
3.被调过程中对形式参数的任何引用和赋值都通过传递到被调过程的指针被处理成间接访问。
5.过程参数的传递方式有几种?简述“传地址”和“传值”的实现原理。