在C++中,靜態數組是在程序編譯時就確定其大小和內存分配方式的數組。它的內存分配方式有兩種:棧內存分配和靜態存儲區分配。
void function() {
static int arr[5]; // 靜態數組在棧內存中分配
}
static int arr[5]; // 靜態數組在靜態存儲區分配
void function() {
// ...
}
需要注意的是,靜態數組的大小必須是常量表達式,因為它的內存分配是在編譯時完成的。此外,靜態數組在其生命周期內會一直占用內存,即使在某些時候它并未被使用。如果需要更靈活的內存管理,可以考慮使用動態數組(如std::vector
)。