const 内存分配情况

const 内存分配的情况

const 内存分配的情况简要的归纳了一下const常量的内存分配问题:c++的编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高,同时,这也是它取代预定义语句的重要基础。符号表的作用是登记源程序中出现的各种名字及其信息,以及编译各阶段的进展状况。  
实现技术:线性表,对折查找与二叉树,杂凑技术; 分配内存的情况:

extern const int bufsz;    //外部声明

const int bufsz=100;
long address =(long) &bufsz; //取const变量的地址

const int [] i={1,2,3}; //用于集合

class x{
      const int i; //类const,跟c中的const常量特性一样
public:

}

不分配内存的情况:
const int i=100; //全局常量 这是c++编程思想第二版第177页中的一段话:

“const可以用于集合,但必须保证编译器不会复杂到把一个集合保存到它的符号表中,所以必须分配内存。在这种情况下,const意味着“不能改变的一块存储空间”。然而,不能在编译期间使用它的值,因为编译器在编译期间不需要知道存储的内容。”

你可能感兴趣的:(c语言)