1.局部const,并不是在常量区分配的,编译器会将const优化,类似于宏定义,出现const变量的地方在编译时就已经替换其值了。所以其实根本没有分配丝毫空间。(只有当你取变量的地址时,才会在栈上分配空间,但是这个分配的空间其实没有什么意义的,因为所有取const变量值的地方,编译时就已经替换成初值了)
2.内存是运行时(运行初期)分配的,但分配内存的大小编译时就决定了。“只读数据段”的内存,运行完才释放。
3.const int a=1;其实类似于宏定义#define a 1,编译时就将局部函数内的a替换成了1。
4.对于全局的const变量,是在常量区分配内存的,是真正的常量。
阅读(1418) | 评论(0) | 转发(0) |