如果我沒有錯,如果我要聲明一個全局char數組,它的元素將被初始化爲\ 0's。如果我要聲明一個靜態全局或靜態本地,那也是一樣。但是靜態字段呢?未初始化爲默認值。靜態字段怎麼樣?
2
A
回答
4
是。在C++術語中,一個字段被稱爲「數據成員」。
段落的C++ 03標準狀態9.4.2.7「靜態數據成員被初始化,並且破壞了完全一樣的非本地對象。」。
3.7.1節「靜態存儲」規定「中的所有對象既不具有動態存儲持續時間也不是當地具有靜態存儲時間。」
第3.6.2節狀態「非本地對象的初始化」,「具有靜態存儲期的對象應被初始化爲零的任何其他初始化發生之前。」
所以,如果你沒有明確初始化數據成員到別的東西,它保持了零初始化值。
1
靜態數據成員的處理方式一樣相對於初始化的全局變量。
相關問題
- 1. 靜態字段初始化
- 2. Java - 靜態初始化與靜態變量的默認值
- 3. 我怎樣才能默認初始化靜態類模板變量
- 4. 默認初始化與默認構建值的初始化初始化
- 5. 靜態ImmutableArray未初始化
- 6. 未初始化的char默認爲@
- 7. 靜態初始化C++,未設置值
- 8. 靜態字段無法初始化
- 9. 通用靜態字段初始化
- 10. 靜態字段/屬性初始化
- 11. java球衣靜態字段初始化
- 12. 靜態字段初始化使用AST
- 13. Java靜態字段初始化
- 14. 當靜態字段初始化發生?
- 15. 爲什麼我不能用C初始化靜態字段++
- 16. Java非靜態字段默認值?
- 17. 爲什麼Unity忽略非靜態公共字段的初始化值?
- 18. Java - Hibernate criteria.setResultTransformer()使用默認值初始化模型字段
- 19. 初始化字段的默認值是多餘的
- 20. 靜態初始化
- 21. 靜態字段 - 初始化和改變給定的值
- 22. 什麼時候靜態字段內聯初始化發生
- 23. 什麼線程正在初始化靜態字段?
- 24. Java:以什麼順序初始化靜態final字段?
- 25. 當方法從super()運行時,爲什麼字段未初始化爲非默認值?
- 26. 做默認構造函數初始化的靜態變量?
- 27. 可選和默認值需要用默認初始值進行初始化
- 28. 爲什麼靜態const char *模板struct成員未初始化
- 29. 爲什麼靜態字段默認爲空?
- 30. 未定義/未初始化的默認值