zoukankan      html  css  js  c++  java
  • C++的顶层const 和 底层const

    顶层const:表示指针本身为常量。

    底层const:表示指针所指向的对象为一个常量。

    且指针类型即可以是顶层const 也可以是 底层const

    int i = 0;

    int const* p1 = &i;    // p1不能被改变,其为顶层const

    int const p2  = 4;     // p2不能被改变,为顶层const

    int cosnt *p3 = &p2   // p3能被改变,为底层const

    const int *const p4 = p3;  // 第一个const为底层cosnt 第二个const为顶层const ,此处p4即是顶层const也是底层const。

    在执行拷贝操作时,顶层const不受影响,但是底层const受影响很大,对底层const的拷贝操作,考入和考出的对象都必需要具有相同的底层const的资格。

    int *p = p4      //  错误操作,p4包含了底层const含义,所指对象为const int,而p为普通int

    而:

    p3 = p4       // 正确,均为底层

    额外的,在c++11中,对一个确定的常量表达式可以使用constexpr来声明变量。

  • 相关阅读:
    CSS
    html5
    XHTML
    HTML
    git 教程 --git revert 命令
    Git 教程 --git merge 命令
    git 教程 --git reset 命令
    git 教程 --git cherry-pick 命令
    git 教程 --git stash命令
    git 教程 --git diff功能
  • 原文地址:https://www.cnblogs.com/zhangli07/p/11960242.html
Copyright © 2011-2022 走看看