zoukankan      html  css  js  c++  java
  • C++ const限定符

    • 基本特性
    1. const对象一旦创建后其值就不能被修改,故而const对象必须进行初始化
    2. 可以用一个非const对象初始化一个const对象,也可以用一个const对象赋值给一个非const对象
    • 默认状态下,const对象仅在文件内有效
    1. 当多个文件内出现了同名的const变量时,等同于在不同文件中定义了独立的变量
    2. 要在多个文件之间共享const对象,在变量的定义之前加上extern关键字
    • &类型与const
        1、&(引用)类型与*(指针)类型不同,引用类型的声明、定义和初始化是一起的,初始化之后将不能再引用其他的变量
                而指针类型的声明、定义、初始化以及之后的赋值都是没有限制的。
    1. int a =1;
    2. int b =2;
    3. int&c = a;
    4. int*p;
    5. p =&a;
        2、与const的搭配
    1. int a =1;
    2. int b =2;
    3. /**< 因为引用在被初始化之后就不能在引用其它变量,所以没有int & const c = a这种写法 */
    4. constint&c = a;
    5. /**
    6. * 不能给c赋值,对a无要求(a可以是const或者非const类型,a也可以重新赋值)
    7. * 不能将c赋值给非const类型
    8. */
    9. constint*p1 =&a;//等同于int const *p1 = &a;
    10. /**
    11. * 底层const
    12. * 不能通过p1修改a的值,对a无要求
    13. * 不能将p1赋值给非const类型
    14. * p1可以指向其他变量
    15. */
    16. int*const p2 =&a;
    17. /**
    18. * 顶层const
    19. * 可以通过p2修改a的值
    20. * p2不能指向其他变量
    21. */
    22. const int * const p3 = &a;
    如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
    如果const位于
    *的右侧,const就是修饰指针本身,即指针本身是常量.





  • 相关阅读:
    mongo常用查询
    MongoDB
    python连接mongo
    linux 硬盘
    kali 日志
    linux 命令
    grep
    linux shell
    linux 匹配字符串是否为数字
    linux 第一题 计算题
  • 原文地址:https://www.cnblogs.com/fengkang1008/p/4652244.html
Copyright © 2011-2022 走看看