关于const的用法

发布时间 2023-07-21 16:52:35作者: para_dise

1、const与值

  const可以限定变量,让其不能发生改变,如下代码。

    const int val;

  但是默认状态下,const限定了的对象仅仅在本文件内有效,如果一个工程由多个文件构成,那么必须在每个文件中都重复定义一次才行,而这个显然是非常麻烦的。另一种简单的办法,是使用extern关键字,让该常量能让其他文件访问。

    extern const int val;

2、顶层const与底层const

  顶层const表示指针本身就是一个常量,而底层const表示指针所指的对象是一个常量,如下:

    int i=0;
    int *const p1=&i;    //这是一个顶层指针,表示p1只能指向i
    const int ci=42;
    const int *p2=ci;    //这是一个底层指针,表示p2指向的是一个const的定值
    const int *const p3=p2;    //靠右的const是顶层const,靠左的是底层const
    const int &r=ci;    //声明引用的const都是底层const
    
    int *p=p3;    //错误,p必须要是底层const
    p2=p3;        //正确