Chinaunix首页 | 论坛 | 博客

OS

  • 博客访问: 2219395
  • 博文数量: 691
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2660
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-05 12:49
个人简介

不浮躁

文章分类

全部博文(691)

文章存档

2019年(1)

2017年(12)

2016年(99)

2015年(207)

2014年(372)

分类: C/C++

2016-02-23 18:01:16

1.const
修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。
  1 #include 
  3 void main()
  4 {
  5    const int MAX =100;
  6    printf("MAX = %d \n",MAX);
  7    MAX = 101;
  8    printf("MAX = %d \n",MAX);
  9 }
const.c:7: error: assignment of read-only variable  //说明MAX是只读的

可以节省空间,避免不必要的内存分配。 例如:
#define PI 3.14159 //常量宏
const doulbe Pi=3.14159; //此时并未将Pi放入ROM中 ......
double i=Pi; //此时为Pi分配内存,以后不再分配!
double I=PI; //编译期间进行宏替换,分配内存
double j=Pi; //没有内存分配
double J=PI; //再进行宏替换,又一次分配内存!
const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。
阅读(1349) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~