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

           

  • 相关阅读:
    Linux九阴真经之催心掌残卷5(正则表达式)
    Linux九阴真经之催心掌残卷4(grep文本处理 )
    Linux九阴真经之催心掌残卷3
    Linux九阴真经之催心掌残卷2
    0.1.kubeadm快速部署kubernetes
    0.2.kubeadm搭建kubernetes高可用集群(CentOS)
    Nginx——模块(1)
    Nginx——主配置段
    Nginx——安装
    Nginx——I/O模型
  • 原文地址:https://www.cnblogs.com/ATMvip/p/3961378.html
Copyright © 2011-2022 走看看