指针的作用域?

15 浏览
0 Comments

指针的作用域?

好的,我找到了一些问题,它们几乎相似,但实际上更让我对指针感到困惑。

C++指针对象与非指针对象

在上面的链接中,他们说,如果你声明一个指针,它实际上保存在堆上,而不是栈上,无论它是在哪里声明的。这是真的吗?还是我误解了?我认为,无论是指针还是非指针,如果它是全局变量,它就会一直存在于应用程序中。如果它是一个局部变量或在循环或函数中声明的,它的生命周期只有代码内部的时间。

admin 更改状态以发布 2023年5月23日
0
0 Comments

void main()
{
  int* p;          // p is stored on stack
  p = new int[20]; // 20 ints are stored on heap
}
// p no longer exists, but the 20 ints DO EXSIST!

希望这能帮到你。

0
0 Comments

这个变量本身被存储在栈或数据段上,但是在使用 new 分配后,它指向的内存位于堆中。

0