zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    服务器基础安全配置
    PhpStorm服务激活
    MySQL快速生成本地测试数据
    mac上php版本切换
    保存修改数据记录(数据库)
    java面向对象整理
    用JavaScript实现表格编辑器
    循环之 打鱼还是晒网这是个问题
    循环之圆周率计算次数
    JAVASE 循环 之 计算各位上数字的和
  • 原文地址:https://www.cnblogs.com/tomatokely/p/8858133.html
Copyright © 2011-2022 走看看