为了账号安全,请及时绑定邮箱和手机立即绑定

请各位大佬指点!C++ 在编译过程中就可以获得变量的地址?跪求!

请各位大佬指点!C++ 在编译过程中就可以获得变量的地址?跪求!

噜噜哒 2019-08-21 20:04:45
今天在阅读C++Primer"constexrp和常量表达式"章节时发现有这么一句话:"常量表达式是指值不会改变并且在编译过程就能得到计算结果的表达式"又有:"C++11标准新规定,允许将变量声明为constexpr来由编译器验证变量的值是否是一个常量表达式"在验证constexpr类型说明符功能时我编写了如下代码:#includeinta=99;constexprint*pa=&a;intmain(){std::cout
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

没用过C++但是编译器在编译过程就会把变量的地址确定下来而局部变量不一样它是放在栈中的地址在运行中才会确定下来举个例子:假如我编译一门语言在内存中分配了一块内存供变量使用假设地址从0开始算遇到一个新变量地址标为0并记录在哈希表中再遇到一个新变量地址标为1依此类推并且用符号表记录下来如果遇到的一个变量已经在哈希表中那代表不是新变量
//变量哈希表类似这样值是内存地址
{
a:0,
b:1,
c:2
}
                            
查看完整回答
反对 回复 2019-08-21
  • 2 回答
  • 0 关注
  • 522 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信