parameter-passing - 方法调用后传递结果值和变量值
问题描述
首先,我了解代码是为按值传递设置的,我认为这个问题是假设性的。
另外,这不是家庭作业,而是来自期末考试的学习指南。
这可能看起来是重复的,但其他线程非常强调除了按值传递之外没有为任何其他内容设置代码,因此注释不是很相关。
我想知道 b) 和 c) 是否生成相同的答案。我解决了这个问题,并且 b) 和 c) 的结果相同,但我觉得这可能是一个棘手的问题,而且很容易遗漏一些东西。这是问题和代码:
考虑以下用 C 语法编写的程序:
void swap( int a, int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
void main()
{
int value = 2, list[5] = {1, 3, 5, 7, 9};
swap(value, list[0]);
swap(list[0], list[1]);
swap(value, list[value]);
}
对于以下每个参数传递方法,在三个 swap 调用之后,变量 value 和 list 的所有值是多少?
a) 按值传递
b) 通过引用传递
c) 通过 value-result
解决方案
推荐阅读
- pygame - 在pygame中重新启动游戏时计时器无法正确启动且未重置
- java - 更改时间选择器会导致应用程序崩溃
- sass - 带有 sass 映射的 Sass 错误错误:预期的“;”
- mysql - MySQL 在 SELECT 查询上添加行
- typescript - 在 TypeScript 中将两个数组合并为一个
- php - 从json_encode嵌套数组php中的手镯中删除双引号
- javascript - onSubmitEditing 永远不会触发?
- vb.net - 动态调用不是控件的对象
- java - 如何在 Java 中发现多播地址范围?
- android - 如何在我的 AppbarLayout 之后放置我的 NestedScrollView