2013-05-13 75 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; 

因为具有静态存储持续时间的变量被隐式初始化为零,但请注意这有副作用效果(即该值在函数调用之间持续存在)。