C++數組初始化
回答
沒有所有人都有與第一個相同的價值嗎?
沒有!當數組部分初始化時,未初始化的數組元素將被初始化(零初始化,在這種情況下爲)。
C++ 03第8.5.1節/ 7
如果在列表中更少的初始化值多於部件在總體上,則每個部件不明確初始化應值初始化 (8.5)。
[實施例:struct S { int a; char* b; int c; }; S ss = { 1, "asdf" };
初始化
ss.a
1,ss.b
用 「ASDF」,和ss.c
與表單 INT(的表達式的值),即,0]
但是,這不是如果我這樣做: float miniTime [7] = {FLT_MAX,FLT_MAX}和其餘5將是0?如果我只設置其中一個元素,應該是相同的,或者不是? – doubter 2011-03-13 17:21:44
從技術上講,其餘的元素都是初始化值,而不是零初始化的。不是說漂浮物有任何區別:) – 2011-03-13 17:24:12
@阿門:是的!添加了標準中的相關文本。 – 2011-03-13 17:26:22
不,只有第一個值用提供的值初始化,其他值則按照標準初始化。
按照標準,它們是值初始化的,不是默認初始化的。不是說POD類型有什麼區別,包括非常多的漂浮物 – 2011-03-13 17:35:05
您的鏈接頁面顯示「...未指定的元素設置爲零」。
這是正確的;因此,只有陣列中的第一個元素被指定爲FLT_MAX
,其餘元素被初始化爲零。如果你想將它們全部設置爲相同的值,你可以使用一個for循環,或更簡潔:
std::fill_n(minTime, 7, FLT_MAX);
以示警告,C++是一個很難的語言。這意味着很多人有很多錯誤信息,這在互聯網上很容易找到。你最好從book on our list學習。 (是的,那些我們的名單上沒有是如此,因爲它們也含有誤傳!)
- 1. C數組初始化
- 2. C++數組初始化
- 3. C++數組初始化
- 4. 數組c初始化
- 5. 初始化數組C++
- 6. C++數組初始化
- 7. 初始化數組時初始化System.AccessViolationException
- 8. 初始化字符數組 - C和C++
- 9. C/C++私有數組初始化
- 10. C結構自動初始化值,數組初始化
- 11. 數組初始化
- 12. 數組初始化
- 13. C - 如何初始化一個預初始化的二維數組數組?
- 14. C++初始化動態數組元素
- 15. 數組初始化器目標C
- 16. C++類的數組初始化
- 17. C初始化數組陣列
- 18. C++二維數組初始化
- 19. C動態數組初始化問題
- 20. C - 動態初始化數組
- 21. c#:初始化一個DateTime數組
- 22. C++多維數組初始化
- 23. 從c#初始化javascript數組值#
- 24. 初始化多維數組C++
- 25. 多維數組初始化的C#
- 26. C++如何初始化一個數組
- 27. C++指針數組初始化幫助
- 28. C結構數組初始化鑄造
- 29. 的C#初始化字符串數組
- 30. 從C數組初始化ublas向量
從你的鏈接:缺少初始值使用零 如果指定了明確的數組的大小,而是指定了一個短initiliazation名單,未指定的元素被設置爲零。 – Erik 2011-03-13 17:21:09