2013-05-13 76 views
2

考慮下面的代碼片段:局部範圍內的NSUInteger的默認值是什麼?

- (void)doSomething 
{ 
    NSUInteger count; 
} 

什麼算什麼?它保證是0嗎?

+1

謝謝大家。我實際上認爲它會是垃圾內存,但明確地詢問它是否保證爲0.因爲我認爲這對於發現此問題的下一個人更有用。 – funroll 2013-05-14 15:33:36

回答

13

不,它不能保證爲零,因爲它是一個本地自動變量。沒有初始化,它的值是不確定的。如果你希望它是零,要麼將其初始化:

NSUInteger count = 0; 

或者將其定義爲static

static NSUInteger count; 

因爲具有靜態存儲持續時間的變量被隱式初始化爲零,但請注意這有副作用效果(即該值在函數調用之間持續存在)。