在栈或堆上创建对象:
问题来了:在栈和堆上创建对象时,引用在哪里那些实际存储的对象?
在 C 中,对象存储是由它的上下文决定的,即它的存储持续时间:
对象 o 创建一个对象:
Object* o 创建一个具有自动存储功能的指针。
指针像任何其他对象一样在堆栈上分配。它们的存储持续时间由上下文决定,而不是由初始化表达式决定。
例如,在下面的代码片段中:
struct Foo { Object o; }; Foo foo, f; Foo* p = new Foo; Foo* pf = &f;
综上所述,对象存储位置仅取决于其上下文,而指针始终分配在堆栈上,但可以引用各种对象储存期限。
以上是在堆栈和堆上创建对象时,对对象的引用存储在哪里?的详细内容。更多信息请关注PHP中文网其他相关文章!