首页 > 解决方案 > 方法调用后传递结果值和变量值

问题描述

首先,我了解代码是为按值传递设置的,我认为这个问题是假设性的。

另外,这不是家庭作业,而是来自期末考试的学习指南。

这可能看起来是重复的,但其他线程非常强调除了按值传递之外没有为任何其他内容设置代码,因此注释不是很相关。

我想知道 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

标签: parameter-passing

解决方案


推荐阅读