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

    关于顶层const 底层const

    const与指针配合使用有两种作用,一是限制指针变量,二是限制指针变量指向的数据

    限制指针变量本身

    1 int * const p2;//const修饰的是指针变量

    限制指针变量本身的意思是,指针变量本身的值不能被修改,所以被 const 修饰的指针变量指针只能在定义时初始化,不能定义之后再赋值,错误代码如下

    限制指针变量指向的数据

    1 const int *p1;
    2 int const *p1;

    上面两种写法都可以,一般使用第一种,限制指针变量指向的数据的意思就是指针可以指向不同的变量(指针本身的值可以修改),但是不能用指针修改指针指向的数据的值,错误代码如下

    区分const是限制的指针变量还是指针变量指向数据的值:const 离变量名近就是用来修饰指针变量的,离变量名远就是用来修饰指针指向的数据,如果近的和远的都有,那么就同时修饰指针变量以及它指向的数据。

    当然也可以同时限制指针变量和指针变量指向的数据的值,写法如下

    1 const int * const p2;

    上面这种写法使指针变量和指针变量指向数据的值都不能修改

    顶层const与底层const

    顶层const

    定义为变量本身是一个常量,因此对一切的内置类型常量而言,所有的const都是顶层const
    对指针来说,常量指针是顶层const,对于引用则没有顶层const的概念。

    底层const

    只在指针和引用上有效,其定义是该指针指向或该引用绑定的对象是常量。
    因此:顶层const和底层const,引用只有底层const。

  • 相关阅读:
    docker
    Flask
    JavaScirpt
    记录片- 走进肯德基 :十亿美元鸡肉店(2015)
    法正(3):扫黑
    法正(2):法雄
    法正(1):年表
    三国皇帝的寡妇秘史(2)
    三国皇帝的寡妇秘史(1)
    程序员的人性思考(下)
  • 原文地址:https://www.cnblogs.com/MengX/p/11873165.html
Copyright © 2011-2022 走看看