• C++:const限定符


    初始化:const对象一经创建其值不能再改变,所以const对象必须初始化

    范围:默认const对象仅在文件内有效。例外:extern const

    常量引用:不能通过该引用修改所绑定的对象。 

    int i=5;
    int &r1=i;
    const int &r2=i;
    r1=1;    //正确,可以通过引用修改所绑定对象的值    
    r2=0;    //错误,不能通过常量引用修改所绑定对象的值

    指针和const:

    • *const 常量指针:把指针本身定义为常量
      • 不变的是指针本身的值,而非所指向常量的值。
    • const* 指向常量的指针:和常量引用一样,不能通过该指针改变对象的值。
    • const *const 指向常量对象的常量指针

    顶层和底层const:

    • 顶层const:本身是常量,不能改变本身的值
    • 底层const:指向常量,可以改变自身的值
      •   不能用指向常量的指针去给一个指针赋值(这相当于用常数给指针赋值,不合法)

    常量表达式:值不会改变,且在编译过程就能得到计算结果的表达式。

    • 字面值
      • 算术类型
      • 引用
      • 指针
    • 用常量表达式初始化的const对象
    int size=27;    //数据类型只是普通int而非const int,值可能会改变,所以不是
    const int sz=get_size();    //具体值要到运行时才能获取,所以不是

    constexpr :如果你认定变量是一个常量表达式,就把它声明成constexpr类型 。constexpr int *p    //这是一个*const类型(C++11)

  • 相关阅读:
    遮罩层可滚动
    toggle函数
    48.判断文本中回车的数量
    47.输出26个字母
    46.@弹出点击次数
    44.@鼠标点击页面中的任意标签,alert该标签的名称
    43.对象深度克隆
    UIscrollView 多图滑动 frame与bounds的区别比较
    累却真心充实 杂感
    delegate
  • 原文地址:https://www.cnblogs.com/tomatokely/p/8858133.html
Copyright © 2020-2023  润新知