我想问一下,我对传入的数组做冒泡排序,直接用 int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
而不是
int temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
(arr + j + 1) = temp;
做两个参数的交换,没有用做解引用对原来的实参进行操作为什么实参也进行了排序
#include<iostream>
using namespace std;
void paixu(int * arr, int length) {
for (int i = 0; i < length - 1; i++) {
for (int j = 0; j < length - 1 - i; j++) {
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
/* if (*(arr + j) > *(arr + 1 + j))
{
int temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}*/
}
}
}
int main() {
int str[6] = { 1,3,2,5,7,6 };
int length = sizeof(str) / sizeof(str[0]);
paixu(str, length);
for (int i = 0; i < length; i++)
{
cout << str[i] << endl;
}
system("pause");
return 0;
}