我通過引用寫了一個簡單的排序代碼。在這裏我傳遞一個數組來運行,然後執行排序操作。在傳遞數組之後,我按照用戶輸入的方式輸出整個數組,然後執行排序操作(按降序排列),但排序後,當我打印排序的數組時,我得到的數組索引'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];
}
請在代碼中包含初始值,而不是從命令行中讀取它們,以方便可能需要幫助的人員並確保該部分不會導致問題。此外,請將代碼格式保持一致,並在您的問題中包含預期和實際輸出。您可能還需要調整主題或代碼,因爲與「按引用傳遞」關係不大。 –