首頁 > 後端開發 > C++ > C 和 C 中如何用大括號初始化陣列?

C 和 C 中如何用大括號初始化陣列?

DDD
發布: 2024-12-13 02:41:10
原創
293 人瀏覽過

How Are Arrays Initialized with Braces in C and C  ?

帶大括號的陣列初始化:揭秘編譯器的行為

程式設計中,用大括號將陣列賦值,如array[100 ] = {0},引發了有關如何在內部初始化值的問題。讓我們深入研究這個符號背後的魔法。

魔法還是編譯器邏輯?

與普遍看法相反,其中不涉及任何魔法。此程式碼的行為受程式語言規格控制:

C 規格(第6.7.8.21 節): 對於未指定的陣列元素,指標初始化為NULL,算術類型(包括char )設定為零。

C 規格(部分8.5.1.7): 未指定的陣列元素是聚合初始化的。

C 中的空初始值設定項列表: C 支援空初始值設定項列表,如array[100] = {};,其中聚合-初始化數組的所有元素。

編譯器產生程式碼: 通常,編譯器會產生將陣列的每個元素設定為指定值的程式碼。但是,根據編譯器和最佳化設置,程式碼可能會有所不同。

要進一步了解編譯器的行為,請參閱相關問題中為空初始值設定項目清單產生的彙編程式碼:「Strange assembly from array 0 -初始化。」

以上是C 和 C 中如何用大括號初始化陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板