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

           

  • 相关阅读:
    mysql--数据库的基本操作(二)
    mysql--数据库剧本指令操作
    poj_3461 KMP算法解析
    POJ_3122 经典二分题
    LIS(最长上升子序列)的 DP 与 (贪心+二分) 两种解法
    HDU_1059 多重背包问题
    HDU-1114 完全背包+恰好装满问题
    HDU _2546 01背包问题
    POJ-1611 并查集
    HDU——Monkey and Banana 动态规划
  • 原文地址:https://www.cnblogs.com/ATMvip/p/3961378.html
Copyright © 2011-2022 走看看