『壹』 C語言 數組初始化為0 編譯器是如何實現的
在編譯時,變數分成兩種形式存放,一種叫初始化段,一種叫未初始化段
如果你定義數組沒有給出賦值語句中的初始值,該數組將保存在未初始化段;否則放入初始化段
編譯器將記錄初始化段中的數組起始地址、數據類型、元素個數,初始化數據在常量區的起始地址,數據個數
在程序運行時,系統先申請各段內存,然後針對初始化段進行初始化工作,方法是從常量段中取出初始化數據給你有初始值的變數賦值,假設你程序開設10個單元的數組,如果沒有優化選項,常量段中將保存10個0用來初始化這個數組,如果有優化選項,可以合並相同常量,則僅保存一個0,並用這個0來初始化所有10個數組元素。