" auto" C ++中的关键字与存储类有关 例如:
void foo() {
auto ptr = new int[9]
}
上面指向int的指针是自动(堆栈)还是动态(堆)?
答案 0 :(得分:3)
在c++11
之前,auto
用于指定automatic
存储持续时间。但是,因为c++11
它的唯一含义是自动推导出变量的类型。它与变量本身的存储类无关。
在您的情况下,ptr
是指向堆上位置的局部变量(int * ptr
)。您可以通过明确地编写变量类型来获得相同的效果,如下所示:
void foo() {
int* ptr = new int[9];
}
请查看this link了解更多详情以及扣减过程的工作原理。