const用法详解

  今天上网上看看,发现很多校园招聘。想起了去年的这时候和兄弟们刚从河南少林回来。然后就是几次笔试。由于那时还自视清高就投了几个公司,里面几家公司好像都考const的用法了。真是无语啊,那时考的,现在才大概明白了。人懒了没办法啊,废话不多说开始我们的const之旅。首先const来自英语单词constant,就是不变的意思。说来简单,用起来就各种纠结了。

  先从正常的定义常量说起吧,在c++里const相当于c里的#define定义。所以在申明的时候要初始化,不然会报错。const纠结就纠结在它放在不同的位置。现举例说明。

  int year = 2010;

  const int *mouth = &year;

  int const *hour = &year;

  int * const minite = &year;

  const int* const  second =&year;

它们之间有什么区别,是不是看晕了,呵呵。很正常,我当时也晕了,想想这出题的人真讨厌。其实发现窍门是很容易理解的。把前面的类型去掉,好了,现在一目了然了吧。第一个是说*mouth这个变量不能改变,而指针mouth可以改变的。第一个其实和第一个一样,不仔细看容易和第三个混淆,第三个也很简单,解引用值可以变,但是指针不可变。刚开始我理解成指针指向year了。然后变不变都考虑year这个变量。这样导致mouth和year特别混乱。其实只要 看前面的变量,就一切很明白了。

  说完常用的变量然后来看类里面成员函数的应用。我直接举例子了,然后解释说明了。

 

  其实对上面定义常量明白理解了,函数里就多了一个成员函数const的用法,这里强调一点的是,申明和定义都要把const带上。他们是一个整体。要是想改变const的话就用const_cast强转。就是平常传递参数的话,如果在函数里不想改变值的话,尽量加上const关键字,提高代码的健壮性,防止不知什么时候值被改变了,尤其是在传递引用的时候。

   就写到这里,c++的细节东西好多啊。

原文链接: https://www.cnblogs.com/fengju/archive/2010/10/18/6174367.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    const用法详解

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/16260

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午4:31
下一篇 2023年2月7日 下午4:31

相关推荐