首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言交換函數不生效原因

     編輯:程式設計綜合問答

在 C 語言中,若交換函數使用傳值呼叫,例如 void swap(int x, int y),函數內部交換的只是參數的副本,對原始陣列元素並沒有影響。因此調用 swap(shu[i], shu[n]) 後,陣列內容不會改變。

正確的做法是使用傳址呼叫,在 C++ 中可以使用參考 void swap(int& x, int& y),或在 C 語言中使用指標 void swap(int* x, int* y),並在函數內部透過指標修改原始變數的值。

修改後,選擇排序中的交換操作才會正確反映到陣列中,程式才能如預期般輸出排序後的結果。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved