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

           

  • 相关阅读:
    17. Letter Combinations of a Phone Number
    16. 3Sum Closest
    15. 3Sum
    14. Longest Common Prefix
    13. Roman to Integer
    12. Integer to Roman
    11. Container With Most Water
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
  • 原文地址:https://www.cnblogs.com/ATMvip/p/3961378.html
Copyright © 2011-2022 走看看