• const 关键字


    1. const 关键字 4 种常见的类型

    1.1 不能通过指针变量修改其指向的值。

        const int *pa = NULL;  
        int const *pa = NULL; // 这两种写法定义的指针变量的类型是一样的。
        int age = 25
        int *pa = &age;
    
        *pa = 30;  /* 编译错误,在 const int * 类型下, 不能通过指向 age 的指针来修改 age 的值 */
        age = 30;  /* 正确,可以直接对变量进行操作 */
    

    1.2 不能修改指针变量本身的值。

        int * const pb = NULL;      
        int age = 25
        int age_man = 30;
        int *pb = &age;  /* 1. 第一次初始化可以 */
    
        *pb = 30;  /* 正确,可以通过指针变量修改其指向的值 */
        age = 30;  /* 正确,可以直接对变量进行操作 */
        pb = &age_man;  /*2. 第二次不能修改指针变量本身的值 */
    

    1.3 既不能修改指针变量本身的值,也不能通过指针变量修改其指向的值。

        const int * const pc = NULL;
    

    1.4 C++ 中的用法

      在类的成员函数中 getXxxx() 之类的方法加 const 关键字进行修饰。譬如: int getAge() const
      
      class Person
      {
    
    private:
        char *m_name;
        int m_age;
    
    public:
    
        void printInfo(void)
        {
            printf("m_name=%s, m_age=%d\n", m_name, m_age);
        }
    
        int getAge() const
        {
            return m_age;
        }
    
        int setAge(int age)
        {
            if (age < 0 || age > 150)
            {
                this->m_age = 0;
                return -1;
            }
    
            this->m_age = age;
        }
    };
    

    2. Why(为什么使用 const 关键字)

    • 提高程序的可读性:const 修饰的变量一般只是作为入参(左值),一般只是对该变量进行读操作。
    • 提高程序的可靠性: 可以把运行时的错误提前到编译的时候。
  • 相关阅读:
    多项式计算公式
    题目:求1+2!+3!+...+20!的和。
    01背包问题
    实现sqrt算法
    R语言中assign函数
    R语言中mode和class的区别
    org.Mm.eg.db包的安装
    正则表达式中.* 和 .*?的区别
    正则表达式中 + 的作用
    正则表达式中.和*的区别
  • 原文地址:https://www.cnblogs.com/hwfre/p/16002561.html
Copyright © 2020-2023  润新知