编译器是否会为静态(编译时)数组创建开销?

Do compiler creates an overhead for static (compile-time) arrays?

我知道当你用

分配数组时
int* arr = new int[n];

编译会产生开销以了解有多少元素要释放。 但它是否会对静态数组造成开销

int arr[4];

我认为答案是否定的,因为你不能删除[]这样的数组,但我需要确定。 谢谢!

你是对的。不需要额外的存储空间。如果变量具有自动存储持续时间,则重新分配会自动发生。编译器拥有编译时所需的所有信息,以了解何时以及释放多少内存