Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2114463
  • 博文数量: 249
  • 博客积分: 1305
  • 博客等级: 军士长
  • 技术积分: 4733
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-17 10:37
个人简介

不懂的东西还有很多,随着不断的学习,不懂的东西更多,无法消灭更多不懂的东西,那就不断的充实自己吧。 欢迎关注微信公众号:菜鸟的机器学习

文章分类

全部博文(249)

文章存档

2015年(1)

2014年(4)

2013年(208)

2012年(35)

2011年(1)

分类: C/C++

2013-07-02 20:45:33


    在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)因为常量在定义后就不能被修改,所以定义的时候一定要初始化。
    
    

阅读(1978) | 评论(3) | 转发(2) |
0

上一篇:C/C++的typedef用法小结

下一篇:C++中引用

给主人留下些什么吧!~~

pmerofc2014-05-17 08:44:44

梦醒潇湘love:我想表达的意思是:const在C语言中默认的是外部连接。

C++中const默认的是内部连接,而在C语言中默认的是外部连接。

我表达不清楚

 谢谢

const在C语言中表示的含义与是否外部连接无关

回复 | 举报

梦醒潇湘love2013-07-04 09:39:47

pmerofc:(2)全局作用域:全局连接,即可以被除所定义文件外的其他文件使用;
=======================
没有这回事!

我想表达的意思是:const在C语言中默认的是外部连接。

C++中const默认的是内部连接,而在C语言中默认的是外部连接。

我表达不清楚

 谢谢

回复 | 举报

pmerofc2013-07-03 22:05:55

(2)全局作用域:全局连接,即可以被除所定义文件外的其他文件使用;
=======================
没有这回事!