我对我的一个测验答案感到有点困惑,我希望有人可以给我一个解释。问题是:
您有两个名为b和c的数组。您调用静态方法,该方法将一个数组的组件k中的值与另一个数组的组件k中的值进行交换。此swap方法未提及除其参数外在方法外声明的任何变量。以下哪种方法调用可以实现此目的?
答案:交换(c,b,k)
我很困惑为什么这就是答案。任何帮助将不胜感激!
答案 0 :(得分:0)
很可能交换声明的c和b通过引用传递。这意味着在进行实际交换之前,所有函数必须检查两者以确保有足够的元素(sizeof(c) >= k && sizeof(b) >= k
或类似的东西)。
另外:b,c和k在问题本身中定义。
答案 1 :(得分:0)
它将索引为k的元素交换为b和c。 k-1交换k之前的元素,0交换数组中的第一个元素
答案 2 :(得分:0)
由于swap()不能引用自身以外的任何内容,因此必须将所有必需的引用和信息作为参数传递。
swap(c,b,k)的答案是正确的,因为它提供了对两个数组的引用以及要交换的索引。你只是无法完成传递更少参数的任务。
如果您只有 swap(), swap(k)或 swap(c,b),那么该方法需要完成任务以外的信息。