• 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++的细节东西好多啊。

  • 相关阅读:
    Laravel artisan 命令工具
    WIN10安装office2003/7失败 WIN10安装office2003权限不足解决
    64windows位安装tensorflow
    Swing图层的应用——实现tooltip显示
    spring加载xml的六种方式
    ubuntu 添加右键打开方式,无法添加程序打开方式
    3.3.4 配置Tomcat的<Context>元素 (转)
    百度tn劫持解决办法
    java代理模式
    js作用域
  • 原文地址:https://www.cnblogs.com/fengju/p/6174367.html
Copyright © 2020-2023  润新知