zoukankan      html  css  js  c++  java
  • const关键字

    1. const修饰指针的四种情况

    int b = 500;
    const int *a = &b;  // 情况1
    int const *a = &b;  // 情况2
    int* const a = &b;  // 情况3
    const int* const a = &b;  // 情况4

    (1)情况1

    const位于*号的左侧,则const用来修饰指针所指向的变量。

    const位于*号的右侧,则const用来修饰指针本身。

    那么,情况1中*a的值是常量。换句话说,如果a是仓库管理员,他所进入的仓库,里面的货物(*a)是他没有权限动的(不允许*a=600)。

    但是也有办法去改变*a的值,一种是通过改变b,另一种是使a指向别处(管理员换个仓库,如a++)。

    (2)同1。

    (3)指针本身是常量,就像a是仓库管理员,他只能进入指定的某个仓库,而不能去别的仓库(不能a++),但是里面的货物(*a)是可以随意动的(允许*a=600)。

    对于这种情况,定义同时必须初始化。

    (4)指针本身和指向的内容的不能动。

    2. C++类中的const用法

    我们定义的类的成员函数中,有一些函数要修改类数据成员的值,有一些函数不要修改类的数据成员。将不需要修改成员变量的函数加上const关键字可以提高程序的可读性、可靠性,在该成员函数中,一旦企图修改数据成员的值或调用另一个非const成员函数,编译器会报错。

    具体例子如下:

    class Point
    {
        int xVal, yVal;
        public:
        int GetY() const;
    };
    
    // 关键字const必须用同样的方式重复出现在函数实现中,否则编译器会把它看成一个不同的函数
    int Point::GetY() const
    {
        return yVal;
    }
    
    // 注意不能写成const int Point::GetY()

    如果把const放在函数声明前面,意味着函数的返回值是常量,

  • 相关阅读:
    【Win 10 应用开发】Toast通知激活应用——前台&后台
    MySQL深入理解
    mysql 索引中的USING BTREE 的意义
    关于PHP将对象数据写入日志的问题
    Golang学习笔记
    git flow 使用步骤
    git flow常用命令
    Nginx Log日志统计分析常用命令
    Nginx配置中的log_format用法梳理(设置详细的日志格式)
    回调函数的原理及PHP实例
  • 原文地址:https://www.cnblogs.com/in4ight/p/8481275.html
Copyright © 2011-2022 走看看