zoukankan      html  css  js  c++  java
  • C++ const关键字


    基本用法

    const用来声明一个常量,常量被初始化后它的值就固定了,不再允许修改:

    const int Month = 12;
    

    const与指针

    const用于指针有三种形式:

    1. 让指针指向一个常量对象,防止指针修改所指向的值,例如:
    int age = 39;
    const int *pt = &age;//声明指向常量的指针
    

    上面的代码声明了一个指向 const int 类型的变量,因此不能用pt来修改该值,即*pt的值为const,不能被修改。
    不能使用pt来修改age的值,但是可以直接修改age的值,因为age是常规变量,没有const修饰:

    *pt = 20; //错误
    age = 20; //正确
    

    对应const 修饰的变量来说只能赋值给“指向常量的指针”,不能赋值给常规指针:

    const float g_earth = 9.8;
    const float *pe = &g_earth; //正确
    
    float *pt = &g_earth;//错误
    
    1. 声明指针本身为常量,防止改变指针所指向的位置 、
    int sloth = 3;
    int * const finger = &sloth;
    

    上面的声明中finger只能指向sloth,但是可以使用finger修改sloth的值,finger是const而*finger不是const

    1. 声明指向const对象的const指针
    double trouble = 2.0E30;
    const double * const stick = &trouble;	
    

    这段代码中 stick只能指向trouble,stick不能修改trouble的值,也就是说stick与*stick都为const


    const与引用

    引用是一个变量的别名,通过使用引用作为函数的形参可以使函数使用原始数据,引用更接近于const指针,一旦与某个变量关联起来将一直效忠于这个变量,也就是说:

    int & rodents = rats;
    

    实际上是下述代码的伪装表示:

    int const * pr = &rats;
    

    rodents 与 *pr起到相同的作用。
    如果只希望函数使用传递给它的信息而不能修改信息,则需要使用常量引用:

    double refcube(const double &ra);			
    

    这样当编译器发现修改了ra的值时会生成错误信息。


    const 写在函数体{}前

    const 写在函数体{}前的作用与注意点如下:
    作用: 表示这个函数只有读的操作,没有写操作,不允许函数改变成员变量的值
    注意: const 放在函数体前需在类里面使用


  • 相关阅读:
    C# 类 (7)
    C# 类 (6) -继承
    C# 类 (5)
    c# 类(4)
    C# 类(3)
    c# 类(2)
    C# 类 (1)
    C# 零碎知识点
    VINS_Fusion 初始化过程
    视觉SLAM(一)预备课程与基础知识
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13860043.html
Copyright © 2011-2022 走看看