在c++中使用我自己的交换函数交换数组中的值



我试图使用我自己的swapp函数在我的数组中交换值。交换函数接受指针,我通过引用和指向数组的指针传递xy。最后交换值

在下面的数组中,我交换索引0和1,但是输出不工作。

#include <iostream>
using namespace std;
void swapp(int arr[], int *x,  int *y) {
int temp = arr[*x];
*x = arr[*y];
*y = temp;
}
int main() {
int w[] = { 1,2,3,4 };
swapp(w, &w[0], &w[2]);
for (int i = 0; i < 4; i++) {
cout << w[i] << endl;
}
}

将索引0与索引1交换,期望输出2,1,3,4,但我得到3,2,3,4。

这样怎么样:

void swapp(int *start, int *end)
{
while (start < end) {
auto tmp = *start;
*start = *end;
*end = tmp;
++start;
--end;
}
}
int main() {
int w[] = { 1 };
auto len = (sizeof(w) / sizeof(w[0]));
swapp(&w[0], &w[len-1]);
for (auto i = 0; i < len; i++) {
cout << w[i] << endl;
}
}

相关内容

  • 没有找到相关文章

最新更新