假设语言支持这些求值策略,那么按引用调用、按名称调用和按值调用的结果会是什么?
void swap(int a; int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
int i = 3;
int A[5];
A[3] = 4;
swap (i, A[3]);发布于 2010-06-03 10:59:29
通过值调用在调用该方法后,在交换方法内所做的-The更改不可见。即。在swap (i, A[3])之后;
i, A[3]值不会更改。
调用ref:调用交换方法后,在该方法中所做的更改是可见的。即。在swap (i, A[3])之后;
交换i, A[3]值。
如果您使用C++作为语言,则应更改该方法的签名以反映通过引用传递:
void swap(int& a, int& b)
{
int temp;
temp = a;
a = b;
b = temp;
}发布于 2010-06-03 10:59:56
如果按值调用swap(),则不会发生任何事情。如果你通过引用调用它,它实际上会进行交换。
当您的函数的目标是返回值时,通过值传递。
当您需要更新参数时,通过引用传递。
https://stackoverflow.com/questions/2963060
复制相似问题