zoukankan      html  css  js  c++  java
  • const 修饰符的几种用法

    const 修饰符的几种用法:

    这玩意地球人都知道,不管什么东东被他修饰后就表示为常量,意思是不可修改.
    也可以理解为只读

    //
    最普通的用法,这个nTemp就是常量,下面的代码中不能再修改nTemp的值
    //
    否则编译器就会报错的
    //
    必须初始化
    const int nTemp = 10;

    //
    这样就错了
    const int nTemp;

    //
    但声明为外部的一个常量就可以
    extern const int nTemp;
    //
    这样到反而错了
    extern const int nTemp = 10;


    以上都已经容易理解


    const遇上指针时就非常容易搞晕

    先统一一下下面说法:
    szBuffer  //
    下面会被说明为指针自己的值
    *szBuffer //
    下面会被说明为指针指向的值

    const char *szBuffer;       //
    指针指向的值不可修改
    char const *szBuffer;       //
    指针指向的值不可修改 其实与上面那句是一样的
    char *const szBuffer;       //
    指针自己的值不可修改
    const char *const szBuffer; //
    指针自己的值与指向的值都不可修改

    /*
    是不是晕了,哈哈,哥玩的不是const,哥玩的是寂寞 ^_ */

    经过仔细观察后发现:
        const 
    只修饰他右边的东东, 如果他右边出现*szBuffer,那就是指针指向的值被修饰了
       
    const 只修饰他右边的东东, 如果他右边出现szBuffer,那就是指针自己的值被修饰了


    //const 
    还可以修饰函数返回值与上面的几种情况一样,就不多说了
    const char *GetDate();

    //
    这种用法更有意思
    //
    左边的const修饰了函数的返回值
    //
    右边的const修饰的是类里边的成员数据不可修改
    const char *CObj::GetDate() const
    {

    }

    好了,就写到了,本人学识不够,难免有出错地方,欢迎指正

  • 相关阅读:
    VC++删除浮动工具条中“关闭”按钮
    automation无法创建对象
    SQL Server 不产生日志
    收缩数据文件
    VB DoEvents用法
    Sql Server添加用户
    Winsock错误代码一览表
    监控数据库性能的sql
    数据库日志文件清理脚本
    VB 中资源文件的多种使用技巧
  • 原文地址:https://www.cnblogs.com/w413133157/p/1652823.html
Copyright © 2011-2022 走看看