我通过引用写了一个简单的排序代码。在这里我传递一个数组来运行,然后执行排序操作。在传递数组之后,我按照用户输入的方式输出整个数组,然后执行排序操作(按降序排列),但排序后,当我打印排序的数组时,我得到的数组索引'0'包含值'41' 。如果我输入的数字小于'41',那么已排序的数组显示为'41',然后以已排序的方式显示其他数字。请解释我为什么得到这样的输出。cpp通过引用传递
#include<iostream>
using namespace std;
int sort_array(int *p);
int main() {
int arr[10];
for (int i=0; i<10; i++) {
cout << "enter " << (i+1) << " value:";
cin >> arr[i];
cout << "\n";
}
sort_array(arr);
return 0;
}
int sort_array(int *p) {
int c=0;
for (int i=0; i<10; i++) {
cout << p[i];
cout << "\n";
}
cout << "arr:"<<p[0];
cout<<"\n";
for (int i=0; i<10; i++) {
for (int j=0; j<10; j++) {
if (p[j] < p[j+1]) {
c=p[j];
p[j]=p[j+1];
p[j+1]=c;
}
}
cout << "\n";
for (int i=0; i<10; i++) {
cout << p[i];
cout << "\n";
}
cout << p[0];
}
请在代码中包含初始值,而不是从命令行中读取它们,以方便可能需要帮助的人员并确保该部分不会导致问题。此外,请将代码格式保持一致,并在您的问题中包含预期和实际输出。您可能还需要调整主题或代码,因为与“按引用传递”关系不大。 –