const作为C与C++共有的关键字,很多使用的方式大同小异。但由于C++是一门面向对象的语言,在类和对象中有更多的使用规则。之前学习C语言的时候就被const这个关键字搅得焦头烂额,正巧也借这篇文章做个完整的小结。
const关键字,翻译成中文是常量,常数的意思。所以在绝大多数场合之中,const是来定义常量的,定义常量也是好的编程习惯。在C类语言之中,定义常量通常会使用宏定义或const关键字来定义常量。二者的区别就在于:
上面说了const的诸多好处,接下来我们完整的梳理一下const关键字的用法:
####修饰变量
初级用法比较简单,作为一个修饰符加在变量之前就可以定义一个常量了。
这里需要强调一下,所谓的常量只是命名符对内存空间的指向被绑定,内存空间上的内容其实不是常量,依旧可以被修改。(好拗口,妈的什么意思嘛~~看代码吧)
####修饰指针
这个用法就比较蛋疼了,需要记住const关键字在变量类型定义时的先后顺序。
大家简单记住一个口诀吧:“前限域,后限针。”
####修饰引用
这个用法和指针类似,把*号换成&就行了,这里就不赘述了。
这里主要就是应用在地址传递上,在值传递的参数情况下,const没有意义。通过地址传递提高效率,同时使用const关键字来保护传递的内容不被修改。
这部分内容是C++与C语言区别的部分,Const关键字对类之中的变量与函数都可以修饰,又涉及到之前系列文章反复涉及的权限控制,也就是封装的内容。
C语言的亲兄弟,const关键字与C与C++基本区别不大,读者可以之行总结。