2013-10-19 57 views
-1

說我有一個名爲abc [100]的整型數組。 abc只有前5個「插槽」中的值。我怎樣才能爲循環編寫一個for循環,直到循環中的最後一個值不是空的?對於具有值的數組長度的循環

int abc[100] = {1, 2, 3, 4, 5}; 
+1

你的意思是'abc'是一個數組? – 0x499602D2

+0

你好,歡迎來到stackoverflow.com。請花些時間閱讀[幫助頁面](http://stackoverflow.com/help),尤其是名爲[「我可以問些什麼話題?」](http://stackoverflow.com/help/討論話題)和[「我應該避免問什麼類型的問題?」](http://stackoverflow.com/help/dont-ask)。更重要的是,請閱讀[Stack Overflow問題清單](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist)。您可能還想了解[SSCCE](http://sscce.org/)是什麼。 –

+0

使用'std :: vector'。 – 0x499602D2

回答

2

在C++數組中,沒有數組元素爲「空」的概念。
這個想法根本不存在。從頭腦中抹去它。
每個數組元素始終存在。 C++中,當數組的一部分被顯式初始化並且部分未被顯式初始化時,未指定的部分默認爲零。

所以,你有效地寫道:

int abc[100] = {1, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0....}; 

如果你願意,你可以把價值0作爲標記爲未設定值。

int i; 
for(i=0; abc[i] != 0; ++i) 
{ 
    cout << "[" <<i<< "] : " << abc[i] <<endl; 
} 
+0

(請注意,這意味着您的任何值都不能爲0) –

+0

除了最後一個值必須爲'0'或您在陣列上運行外。 – JustSid

0

在C++中,如果你聲明數組並初始化的前幾個元素,其餘的元素將是值初始化,意思基本上是「默認構造函數」將被調用。

對於內置類型,例如int值初始化將值設置爲零。所以如果你解決了你的數組的問題,並且只初始化前五個元素,剩下的將被初始化爲零。