1.定义const对象

  const限定符把一个对象转换成一个常量

    const int Bufsize = 512;

定义Bufsize 为常量并初始化为512。变量Bufsize仍然是一个左值,但是不可修改。

    Bufsize = 0;  // error

2.const对象默认为文件的局部变量

  在全局作用域中定义非const变量时,在整个程序中都能访问

    // file1.c

     int counter;

    // file2.c

    exter int counter;

    counter++;

  除非特别说明,在全局作用域声明的const变量是该对象的文件的局部变量,此变量只存在于这个文件中,不能被其他文件访问。

  通过指定const变量为extern,就可以在整个程序中访问const变量。

    // file1.c

      extern const int Bufsize = fcn();

    //file2.c

      extern const int Bufsize;

      for( int i = 0; i < Bufsize; ++i )

注意:非const变量默认为extern。要使const变量能够在其他的文件中访问,必须显示的指定它为extern。

3. const引用

  const引用是指向const对象的引用

      const int ival = 512;

      const int &refval  = ival;    // ok: 对象和引用都是const型

      int &refval = ival;      // error: 对象是const型,引用不是const型

4.指向const对象的指针

   指针指向const对象,不允许通过指针改变其所指的const值。

      const double pi = 3;

      const double *cptr = *pi;

      *cptr = 4;  // error

   把一个const对象的地址付给一个非const对象的指针,编译时是错误的。

        const double pi = 3;

        double *cptr = &pi;    // error

  

5. const 指针

   const指针——指针本身不能被修改

       int errNumb_1 = 0;

       int errNumb_2 = 0;

       int *const curErr = &errNumb;

       curErr = &errNumb_2;    // error, curErr 已经被赋值了

      

const 限定符的更多相关文章

  1. C++const限定符

    在C语言中我们使用#define宏定义的方式来处理符号常量.而在C++中有一种更好的处理符号常量的方法,那就是使用const关键字来修改变量声明和初始化.这种处理常量方式的好处不言而喻:如果程序在多处 ...

  2. C++杂谈(一)const限定符与const指针

    const限定符 c++有了新的const关键字,用来定义常变量,可以替C语言中的#define.关于const限定符,有以下需要注意: 1.创建后值不再改变 2.作用范围在文件内有效 3.添加ext ...

  3. C++ Primer 第二章 引用 指针 const限定符

    1.引用: 为对象起了另外一个名字,引用类型引用另外一种类型,通过将声明符写成&d的形式来定义引用类型,其中d也就是声明的变量名(声明符就是变量名). PS:1.通过图片中编译所提示的报错信息 ...

  4. 指针和Const限定符

    指针和Const限定符 1.指向const对象的指针 如果指针指向的是const对象,则不允许使用指针来改变其所指的const值.C++要求指向const对象的指针具有const特性. const d ...

  5. C++ const 限定符

    C++ const 限定符 作用:把一个对象转换成一个常量 用法:const type name = value; 性质:1. 定义时必须初始化,定义后不能被修改.2. 类中的const成员变量必须通 ...

  6. const限定符的作用

    const限定符的作用:                                     1.定义const常量:const可以将一个对象变成一个常量,不可被修改,所以定义的 时候必须进行初始 ...

  7. C++之const限定符

    作者:tongqingliu 转载请注明出处: C++之const限定符 const初始化 const的特点: 用const加以限定的变量,无法改变. 由于const对象定义之后就无法改变,所以必须对 ...

  8. 变量和基本类型——复合类型,const限定符,处理类型

    一.复合类型 复合类型是指基于其他类型定义的类型.C++语言有几种复合类型,包括引用和指针. 1.引用 引用并非对象,它只是为一个已存在的对象所起的另外一个名字. 除了以下2种情况,其他所有引用的类型 ...

  9. C++之const限定符(顶层const,底层const)

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7050815.html C++之const限定符(顶层const,底层cons ...

随机推荐

  1. sql server 替换特殊符号

    --create-- 去掉特殊符号alter function RepSymbol(@str nvarchar(max))returns nvarchar(max)as begin set @str= ...

  2. Spark 1.6以后的内存管理机制

     Spark 内部管理机制 Spark的内存管理自从1.6开始改变.老的内存管理实现自自staticMemoryManager类,然而现在它被称之为"legacy". " ...

  3. OAF_开发系列11_实现OAF通过DataBoundValues动态显示表列的左右对齐

    20150712 Created By BaoXinjian

  4. 关于NGINX的502的装逼打怪之路

    写日志之前先copy一段nginx502的原因,从某网看到如下,然而这并不是重点,最重要还是看博主手敲的东西. 一.NGINX 502错误排查 NGINX 502 Bad Gateway错误是Fast ...

  5. mysql数据备份

    转载自:http://blog.chinaunix.net/uid-16480950-id-102800.html   http://www.cnblogs.com/xuejie/archive/20 ...

  6. (Skill)238. Product of Array Except Self

    Given an array of n integers where n > 1, nums, return an array output such that output[i] is equ ...

  7. Python-0 简述

    #1 应用广泛: 豆瓣 youtube 云存储相关 #2 初步学习内容:

  8. MVVM模式下弹出窗体

    原地址:http://www.cnblogs.com/yk250/p/5773425.html 在mvvm模式下弹出窗体,有使用接口模式传入参数new一个对象的,还有的是继承于一个window,然后在 ...

  9. 单例设计模式全局缓存accessToken

    使用微信JS-SDK开发的小伙伴们,看文档经常会看到这样一句话:(下面是微信开发文档的一部分原话截图) 这句话就是:开发者必须在自己的服务全局缓存access_token,jsapi_ticket 下 ...

  10. angularJS全选功能实现

    最近在做的一个项目要增加全选和反选功能,之前只做过JQ版的全选和反选. 实现效果: 1.点击全选checkbox可以切换全选和全部清空 2.点击列表中的checkbox,当全部选中时全选选中 3.在全 ...