比如调用sort
sort(num,num+k,cmp);
int cmp(const int x,const int y)
{
return x > y;
}
这里用const 修饰这个起到什么作用呢?
提高了效率嘛?
比如调用sort
sort(num,num+k,cmp);
int cmp(const int x,const int y)
{
return x > y;
}
这里用const 修饰这个起到什么作用呢?
提高了效率嘛?
2 回答1.7k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答931 阅读
1 回答1.1k 阅读
2 回答1.1k 阅读
这里面的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++》……书还是挺多的