用const定义常量比用define定义常量有什么好处?
请问:用const定义常量比用define定义常量有什么好处?
我认为这句有失偏颇:
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
最后那个在有些地方叫做:“符号表”。
当你定义了一个常量时,C++编译器会把它放在符号表里(我想引用也是这种机制),所以当你用到该常量时,会从符号表里查找。但是,当你用到了该常量的地址,如 const int i=10; const int *p=&i;,那么该常量才会拥有一个可以使用的内存地址。
我认为这句有失偏颇:
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
最后那个在有些地方叫做:“符号表”。
当你定义了一个常量时,C++编译器会把它放在符号表里(我想引用也是这种机制),所以当你用到该常量时,会从符号表里查找。但是,当你用到了该常量的地址,如 const int i=10; const int *p=&i;,那么该常量才会拥有一个可以使用的内存地址。
堆、栈、自由存储区、全局/静态存储区和常量存储区,这几个存储区的内存范围我们可以自行定义吗?那我们又是在哪定义它们的范围呢?