Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97166
  • 博文数量: 20
  • 博客积分: 542
  • 博客等级: 中士
  • 技术积分: 249
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-10 16:47
文章分类
文章存档

2013年(1)

2012年(19)

我的朋友

分类: C/C++

2012-08-14 10:15:00

1.局部const,并不是在常量区分配的,编译器会将const优化,类似于宏定义,出现const变量的地方在编译时就已经替换其值了。所以其实根本没有分配丝毫空间。(只有当你取变量的地址时,才会在栈上分配空间,但是这个分配的空间其实没有什么意义的,因为所有取const变量值的地方,编译时就已经替换成初值了)

2.内存是运行时(运行初期)分配的,但分配内存的大小编译时就决定了。“只读数据段”的内存,运行完才释放。

3.const int a=1;其实类似于宏定义#define a 1,编译时就将局部函数内的a替换成了1。

4.对于全局的const变量,是在常量区分配内存的,是真正的常量。
阅读(1418) | 评论(0) | 转发(0) |
0

上一篇:vim工程管理

下一篇:C语言 栈

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