首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >评估策略示例

评估策略示例
EN

Stack Overflow用户
提问于 2010-06-03 10:55:49
回答 2查看 101关注 0票数 0

假设语言支持这些求值策略,那么按引用调用、按名称调用和按值调用的结果会是什么?

代码语言:javascript
运行
复制
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]);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-03 10:59:29

通过值调用在调用该方法后,在交换方法内所做的-The更改不可见。即。在swap (i, A[3])之后;

i, A[3]值不会更改。

调用ref:调用交换方法后,在该方法中所做的更改是可见的。即。在swap (i, A[3])之后;

交换i, A[3]值。

如果您使用C++作为语言,则应更改该方法的签名以反映通过引用传递:

代码语言:javascript
运行
复制
void swap(int& a, int& b)
{
   int temp;
   temp = a;
   a = b;
   b = temp;
}
票数 1
EN

Stack Overflow用户

发布于 2010-06-03 10:59:56

如果按值调用swap(),则不会发生任何事情。如果你通过引用调用它,它实际上会进行交换。

当您的函数的目标是返回值时,通过值传递。

当您需要更新参数时,通过引用传递。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2963060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档