C++基础面试题 | C++中const的作用?谈谈你对const的理解?

在这里插入图片描述

回答重点

在C++中,const 关键字的最主要作用是用于声明变量为常量,也就是说,这个变量的值一旦确定就不能再被修改。

  1. 修饰普通变量:最基本的用途是定义一个常量值,这个值在初始化后不能被修改。此时,作用效果与define类似:

    const int MAX_USERS = 100;
    
  2. 修饰指针const 可以用于指针,以限制指针指向的数据或指针本身的修改。例如:

    const int* ptr; // 指针指向的值不能被修改
    int* const ptr = &someInt; // 指针本身不能被修改,只能指向最初的地址
    const int* const ptr = &someInt; // 指针指向的值和指针本身都不能被修改
    
  3. 修饰引用:在函数参数中使用 const 可以保证函数不会修改传入的参数。这对于传递大型对象或不想被修改的对象非常有用,可以提高程序的安全性和可读性。

    void printMessage(const std::string& message);
    
  4. 修饰成员函数:在类中,const 可以修饰成员函数,表示该成员函数不会修改类的任何成员变量(除了那些用 mutable 修饰的成员)。

    class MyClass {
    public:
        void display() const; // 常量成员函数
    };
    
  5. 修饰成员变量:在C++中,const 关键字修饰类成员变量时,表示该成员变量的值在对象的生命周期内是不可变的。这意味着类对象一旦确定被实例化后,成员变量的值已经固定,不能再被修改。

     class MyClass {
     public:
         const int a = 5; // 定义一个常量成员变量a,初始化为5
     };
    

知识拓展——不同的const指针

  1. 指向常量的指针
    指针指向的内容是常量,不能通过该指针修改其所指向的值。
int x = 10;
const int* ptr = &x; // ptr 是一个指向常量的指针
// *ptr = 20; // 错误:不能通过 ptr 修改 x 的值
  1. 常量指针
    指针本身是常量,指针的值(即指向的地址)不能被修改,但可以通过该指针修改其所指向的值(如果所指向的不是常量)。
int x = 10;
int* const ptr = &x; // ptr 是一个常量指针
// ptr = &y; // 错误:不能修改 ptr 的值(地址)
*ptr = 20; // 正确:可以通过 ptr 修改 x 的值
  1. 指向常量的常量指针
    指针本身是常量,且指针指向的内容也是常量。
int x = 10;
const int* const ptr = &x; // ptr 是一个指向常量的常量指针
// ptr = &y; // 错误:不能修改 ptr 的值(地址)
// *ptr = 20; // 错误:不能通过 ptr 修改 x 的值
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值