下面是我的一些代码片段
static const int s_kVar1 = 0;
static const int s_kVar2 = 1;
...
void foo()
{
MyObject *o = new MyObject();
// Is it ever possible that (o == &s_kVar1) or (o == &s_kVar2)
}
最佳答案
简短的回答是否定的。保证不同的对象具有不同的地址。全局 (s_kVar) 和动态分配的对象 (o) 位于不同的内存区域。
附言但是,是的,您可以滥用语言来打破这种保证。您可以在同一内存位置构造两个不同的对象。
关于c++ - 静态变量的地址值可以与堆分配地址匹配吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46241363/