c++ - const 数组是否在存储在堆栈中的函数中声明?

标签 c++ stack

如果 this 在函数内声明,它会在堆栈上声明吗? (它是 const 让我想知道的)

void someFunction()
{

     const unsigned int actions[8] = 
     {       e1,
             e2,
             etc...
     };
 }

最佳答案

是的,它们在堆栈上。您可以通过查看此代码片段来了解这一点:它必须将销毁消息打印 5 次。

struct A { ~A(){ printf( "A destructed\n" ); } };

int main() {
    {
      const A anarray  [5] = {A()} ;
    }
    printf( "inner scope closed\n");
}

关于c++ - const 数组是否在存储在堆栈中的函数中声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334069/

相关文章:

c - 堆栈分配、填充和对齐

java - 链表栈,推到底部而不是顶部

c++ - 基于颜色的 OpenCV 边缘/边界检测

c++ - 我应该修复这个晦涩但优雅的 C++ 代码片段吗?

C++ Yahtzee 通过 TCP

c++ - union 中出现意外结果 (C++)

java - java中堆栈值与字符串的比较

c - 如果没有明确定义,函数参数是否给出本地地址空间?

c++ - 使用 char* 类型的 static_cast 获取地址,并获取 24 位和 48 位地址

F# NativePtr.stackalloc 意外堆栈溢出