我试图使用我自己的swapp
函数在我的数组中交换值。交换函数接受指针,我通过引用和指向数组的指针传递x
和y
。最后交换值
在下面的数组中,我交换索引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;
}
}