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

学习是最好的投资!

Antworte allen(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就知道这个变量不会发生改变。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage