1)C++默认为内部链接;C默认为外部链接
2)在C++中,一般一个const不会创建内存空间,而是将其保存在符号表(待看)。比如:

 const int bufsize = ;
char buf[bufsize];

这里无需为const创建内存空间,进行完类型检查之后,值会折叠到代码中。
但也有为const分配内存的时候。如取一个const的地址或者把它定义为extern等。

#include <iostream>
const int i = ;
const int j = i + ;
long address = (long)&j;//i、j本没有被分配存储空间,但因为这里需要j的地址,故迫使编译器给j分配存储空间,但也是不能改变值的内存空间。
char buf[j + ]; int main()
{
const char c = cin.get();//这里因为c的值编译期间并不知道,因此也要为它分配内存。
const char c2 = c + 'a';
cout << c2;
}

另外,const用于集合的时候,也会分配内存

 const int i[] = {,,,};
float f[i[]];//编译器在编译期间为i分配了内存(集合,复杂的结构不会放在符号表中),无需知道其值,所以编译期间i[3]并不知道为何值。但定义数组的话要指定它的大小,故这里出现error。
struct S{int i,j;};
const S s[]={{,},{,}};
double d[s[].j];//同样这里也不知道s[1].j的值。出现error.
void main(){} extern const int x = ;//强迫给它分配内存。

C中,一个const总是需要创建存储空间的。其义为:一个不能被改变的普通变量。

 const int bufsize = ;
char buf[bufsize];//会有error。因为bufsize占用某块内存,所以编译器并不知道其值。 const int bufsize;//这个是可以的;作为一个申明。

C++中当定义一个const时,必须赋值给它,除非用extern做了说明。

 extern const int bufsize;//同上的意思。

const关键字在C和C++区别的更多相关文章

  1. C++中的const关键字

    http://blog.csdn.net/eric_jo/article/details/4138548 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方 ...

  2. 陈正冲老师讲c语言之const关键字

    1.const 关键字也许该被替换为 readolny const是constant的缩写,是恒定不变的意思,也翻译为常量.常数等.很不幸,正是因为这一点,很多人都认为被const修饰的值是常量.这是 ...

  3. const关键字详解

    const在函数前与函数后的区别 一   const基础         如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况:         int   b   =   500; ...

  4. C++ const关键字用法详解

    1const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目. 事实上这个概念谁都有只是三种声明方式非常相似很容易记混. Bjarne在他的T ...

  5. C/C++中const关键字的用法及其与宏定义的比较

    1.const关键字的性质 简单来说:const关键字修饰的变量具有常属性. 即它所修饰的变量不能被修改. 2.修饰局部变量 ; ; 这两种写法是等价的,都是表示变量的值不能被改变,需要注意的是,用c ...

  6. c++ --> const关键字总结

    const关键字总结 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性.const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变 ...

  7. 【3】学习C++之const关键字的使用

    在C++中,const关键字是控制变量是否可以变化的,是否能够用好const关键字是区别小白和大佬的重要指标(大雾). 1.const与基本数据类型 ; //a是变量,a的值可以在后续操作中进行更改. ...

  8. C/C++中const关键字的用法及其与宏常量的比较

    1.const关键字的性质 简单来说:const关键字修饰的变量具有常属性. 即它所修饰的变量不能被修改. 2.修饰局部变量 ; ; 这两种写法是等价的,都是表示变量的值不能被改变,需要注意的是,用c ...

  9. C++中const关键字的使用方法,烦透了一遍一遍的搜,总结一下,加深印象!!!

    之前一直在学习C/C++,关于const的使用,这里出现一点,那里出现一点.知识用时方恨少,这一段时间正好各种笔试题,其中关于const的用法也是层出不穷,所以疲于在书本上各种翻,这里汇总一下,加深自 ...

随机推荐

  1. innodb_lru_scan_depth

    innodb_lru_scan_depth是5.6新增加的参数,根据 官方文档 描述,它会影响page cleaner线程每次刷脏页的数量, 这是一个每1秒  loop一次的线程.在Innodb内部, ...

  2. sublime自己常用到的设置

    一.快捷“在浏览器打开” 在首选项->按键绑定-用户中添加代码: { "keys": ["f12"], "command": &quo ...

  3. BootStrap2学习日记14----导航

    <div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar-inne ...

  4. js字符串的各种格式的转换 ToString,Format

    1.转换钱的格式,仅限int型,float型,double型 double d = 400; d.ToString("C"); //¥400.00 2.10进制数,仅限int型的数 ...

  5. [Arduino] 外部中断

    原文:http://www.arduino.cn/thread-2421-1-1.html 1.什么是中断? 试想一下,你正在家里吃饭,这时传来了敲门声,虽然你巨饿,虽然面前全是山珍海味,但此时你不得 ...

  6. css居中的几种方式

    居中分水平和垂直两种,使用的频度也算是很高,下面分情况来讨论一下几种常用的实现方式. 欢迎指正文中的错误,同时如果有学习到新的方式也会更新在后面,也方便以后温故知新. 1.margin 这种方式只能实 ...

  7. [Android]AndroidDesign中ActionBar探究1

    概述 从Google IO 2013大会以来越来越多的Android应用开始遵循Android的设计风格,简单的就是google play和Gmail,在国内我们常用的软件像知乎.印象笔记,主要的界面 ...

  8. Things make us different

    Don't just accumulate knowledge, apply it. You will never really know or understand something until ...

  9. Sqlite3笔记

    .tables 查看表.databases 创建数据库alter table 表名 RENAME TO 新表名ALTER TABLE 表名 add column 列名 datatype [DEFAUL ...

  10. IOS 9 遇到的问题

    IOS9中通过url scheme调用其他app时候,控制台会输入 canOpenURL: failed for URL: "XXXXXX://" - error: "T ...