• 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。

  • 相关阅读:
    关于静态链接库(Lib,.A)与动态链接库(DLL,.SO)
    #pragma once
    动态链接库和静态链接库的区别
    C++编写、生成、调用动态链接库
    cmake 命令行
    Build Slicer application--Compiling and installing Slicer from source
    3DSlicer开发之路——Extensions(九)
    3DSlicer开发之路——Extensions(八)
    3DSlicer开发之路——Extensions(七)
    placeholder文字颜色与是否显示兼容性
  • 原文地址:https://www.cnblogs.com/MengX/p/11873165.html
Copyright © 2020-2023  润新知