Chinaunix首页 | 论坛 | 博客
  • 博客访问: 666736
  • 博文数量: 209
  • 博客积分: 26
  • 博客等级: 民兵
  • 技术积分: 326
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 09:29
文章分类

全部博文(209)

文章存档

2015年(6)

2014年(40)

2013年(154)

2012年(11)

我的朋友

分类: C/C++

2013-07-04 16:16:48


    在C语言中,const限定符有以下几个作用:
    (1)“readonly”:只读的变量,定义以后就不能被修改;
    (2)全局作用域:全局连接,即可以被除所定义文件外的其他文件使用;(这里进行修改如下
    (2)C语言中,const默认的外部链接,因此,如果在不同的编译单元中有同名的const变量,会发生命名冲突;而在C++中,const默认为内部链接,因此在不同的编译单元中出现同名的const变量不会引起命名冲突。

    (3)const定义的只读变量必须在定义的时候进行初始化;

    在C++语言中,const限定符有以下几个作用:
    (1)常量
  1. const int bufsize = 512;
  2. int a[bufsize];
    上述代码在C++中是正确的,因为const修饰的变量的是常量,而在C语言中则是编译错误。
    (2)const对象默认为文件的局部变量,即局部连接
    在全局作用域中定义非const变量,它在整个程序中都可以访问。可以把一个非const变量定义在一个文件中,假设已经做了合适的声明,就可在另外的文件中使用这个变量:
  1. //file1.cc
  2. int counter; //defination

  3. //file2.cc
  4. extern int counter; //using counter from file1.cc
  5. ++counter;
    但是,但是,与其他变量不同,除非特别说明,在全局作用域声明的const变量是定义该对象的文件的局部变量。此变量只存在于那个文件中,不能被其他文件访问。上述代码中counter若定义为const类型,则会编译出错。
    记住:
    在C++中,非const变量默认为extern。要使const变量能够在其他的文件中访问,必须显式的指定它为extern。
    (3)因为常量在定义后就不能被修改,所以定义的时候一定要初始化。
    
    

阅读(648) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~