首页 > 试题广场 >

c++中,声明const int i,是在哪个阶段做到 i只

[单选题]
c++中,声明const int i,是在哪个阶段做到 i只可读的?
  • 编译
  • 链接
  • 运行
  • 以上都不对
推荐
const用来说明所定义的变量是只读的。 这些在编译期间完成,编译器可能使用常数直接替换掉对此变量的引用。
编辑于 2015-02-03 15:52:55 回复(0)
const说明变量是常量,常量存储在常量区,在编译时就直接将其替换成相应的引用。
发表于 2016-05-23 20:30:48 回复(1)
源代码到可执行文件的过程
源代码-->预处理-->编译-->优化-->汇编-->链接-->可执行文件
发表于 2017-03-30 20:26:20 回复(0)
A .编译阶段. 
const int i = 10; 编译时候  就和 变量i做了对应,后面程序用到i的时候,直接从编译器的符号表中取10,不会再查找内存...
发表于 2015-04-12 20:07:16 回复(2)
const int i=10,表示变量i是一个常变量,在编译阶段,程序后面只要出现i这个标识符都会被用10进行替换。这一点类似于宏,#define i 10.
发表于 2017-11-13 21:06:48 回复(0)
编译检查语法错误
发表于 2023-11-14 17:35:52 回复(0)
源代码到可执行文件的过程 源代码-->预处理-->编译-->优化-->汇编-->链接-->可执行文件
发表于 2023-05-19 16:15:50 回复(0)
C++中const int i存放在四区中的全局区,全局区在程序编译时完成引用
发表于 2020-03-13 13:49:55 回复(0)
我有个疑问,如果有如下定义 const int a = f();
这个怎么在编译时确定?(这个是可以运行的,没问题的,亲测,而且函数f() 不是constexpr 函数)
求各位大佬答疑
发表于 2018-05-28 10:14:00 回复(0)
在c++中 const修饰的变量是常量,分配在全局区的常量区,而我们的全局区和代码区在编译完了 就已经确定,只有栈区和堆区才是运行是分配的。 
发表于 2018-02-04 21:51:43 回复(0)
const说明变量是常量,常量存储在常量区,在编译时就直接将其替换成相应的引用。define是在预编译的时候进行宏替换的
发表于 2017-03-19 20:33:00 回复(0)
这个放到.rodata 段
发表于 2017-02-25 23:51:33 回复(0)
选择A:
const用来说明所定义的变量是只读的。 这些在编译期间完成,编译器可能使用常数直接替换掉对此变量的引用。 
发表于 2015-09-02 16:19:00 回复(0)
http://developer.51cto.com/art/201001/180130.htm
发表于 2015-08-29 14:49:37 回复(3)