【发布时间】:2017-01-15 14:43:03
【问题描述】:
我正在尝试以相反的顺序编写数组元素,我遇到了这个例子
template <class T>
void reverse(T arr[], int size)
{
if (size>=2)
{
swap(arr[0],arr[size-1]);
reverse(arr+1,size-2);
}
}
我没有得到第二行 - 为什么他们将数组的大小减去 2? 如果我在“交换”函数中有 10 个元素,通过将第一个元素与最后一个元素相减来将第一个元素与最后一个元素进行交换,然后再将其减去 2 将得到 8,但将该大小再次放入“交换”函数中,我会得到 7 !!不应该是 8 而不是 7?
【问题讨论】:
-
你从哪里得到 7?如果
size是10,size - 2是8。size - 1不会修改size。
标签: c++ arrays recursion reverse