首頁 >後端開發 >C++ >C 11 中如何處理「std::array」的預設初始化?

C 11 中如何處理「std::array」的預設初始化?

Susan Sarandon
Susan Sarandon原創
2024-10-30 22:14:30363瀏覽

How is Default Initialization Handled for  `std::array` in C  11?

C 11 的std::array 的預設初始化

未指定明確初始化程序時執行的預設初始化由C 語言標準保證,適用於所有沒有顯式初始化程序,包括std::array 的實例和T[N] (§8.5/11)。

但是,需要注意的是,預設初始化對非類別、非陣列型別沒有影響,導致它們的值不確定 (§8.5/6) 。例如,此類類型的預設初始化數組將具有不確定的值:

<code class="cpp">int plain_int;
int c_style_array[13];
std::array<int, 13> cxx_style_array;</code>

要將所有元素明確初始化為T{},請使用值初始化(8.5/7):

<code class="cpp">int plain_int{};
int c_style_array[13]{};
std::array<int, 13> cxx_style_array{};</code>

以上是C 11 中如何處理「std::array」的預設初始化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn