C++快排函数调用里 用 const修饰比较时的变量有什么作用嘛?
PHPz
PHPz 2017-04-17 12:06:02
0
3
960
PHPz
PHPz

学习是最好的投资!

全部回覆(3)
PHPzhong

這裡面的const作用是保證修飾的參數在函數內部不被修改,

如果是引用傳值int cmp(const int &x,const int &y),的話將實參直接傳遞給函數,省去了將實參拷貝給形參的過程,再透過使用const保證函數不可以修改傳給它的實參,能提升效率。

但是你的這個程式碼範例中,int cmp(const int x,const int y),首先還是要將實參的值拷貝給形參,然後再在函數中比較形參,所以效率並沒有提升,另外這種形式的函數使用const完全是毫無意義,本身就算函數修改了形參的值,因為形參是實參的副本,所以根本不會影響到實參,使用const來保證函數無法修改形參的值又有什麼意義呢?

詳細的了解,請看我的文章:http://segmentfault.com/a/1190000003696397

另外建議你多看一些C、C++的書,主要是關於指針和內存的書,這裡面的回答還只是比較片面的,希望你能多看一些書去系統化的了解

《C與指標》《C專家程式設計》《Effective C++》…書還是挺多的

Peter_Zhu

都是值傳遞,不提高效率。

感覺這樣多此一舉,因為傳參過程中複製了一份,修改參數也不修改原值。

阿神

樓上答案很詳細了,補充一個作用是const可以提高程式碼的可讀性,看到const就知道這個變數不會改變。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板