zoukankan      html  css  js  c++  java
  • const 限定符

    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 已经被赋值了

           

  • 相关阅读:
    浅谈.NET和JAVA的跨平台
    ADO.NET获取TIPTOP存储过程的返回值
    Hide DataGrid Columns via HeaderText
    笑话一则:开车的最高境界
    [推薦]面试时最常问的15问题
    美国小学生守则 VS 中国小学生守则
    Embedded UserControls: Revisited
    SOA认识存误区 详解SOA企业部署的六大关键要素
    Java、.NET,为什么不合二为一?
    [轉]informix语句祥解
  • 原文地址:https://www.cnblogs.com/ATMvip/p/3961378.html
Copyright © 2011-2022 走看看