c++基础 const关键字

275 阅读1分钟

含义

const关键字用于限定变量或函数内部无法修改值

使用场景

  1. const修饰指针变量时:
    • (1)只有一个const,如果const位于*左侧,表示指针所指数据是常量,不能通过解引用修改该数据;指针本身是变量,可以指向其他的内存单元;
    • (2)只有一个const,如果const位于*右侧,表示指针本身是常量,不能指向其他内存地址;指针所指的数据可以通过解引用修改;
    • (3)两个const,*左右各一个,表示指针和指针所指数据都不能修改;
  2. 修饰函数参数时:
    • 该参数在函数内部不能被修改;
  3. 修饰成员函数时(位于函数后方)
    • (1)函数内部不能修改成员变量(mutlable修饰的除外);
    • (2)函数内部不能调佣其他非const成员函数;
    • (3)const对象只能调用const成员函数;
  4. 修饰函数返回值(位于函数前方)
    • (1)返回值为指针时 该返回值为常量指针,只能赋值给常量指针;
    • (2)返回为值传递时加const没有实际效果,值赋给变量,返回值就没有存在意义了;

扩展

constexptr关键字

该关键词修改的变量或函数由编译器验证变量是否是一个常量表达式,必须用常量表达式初始化,尽量不使用普通函数作为初始值,使用constexptr函数初始化constexptr变量,修饰指针时仅对指针有效,与指针指向的对象无关