本地范围内NSUInteger的默认值是多少?

fun*_*oll 2 int objective-c nsinteger

给出以下代码段:

- (void)doSomething
{
    NSUInteger count;
}
Run Code Online (Sandbox Code Playgroud)

什么算?它保证是0吗?

小智 15

不,它不能保证为零,因为它是一个本地自动变量.没有初始化,它的值是不确定的.如果你想要它为零,要么初始化它:

NSUInteger count = 0;
Run Code Online (Sandbox Code Playgroud)

或者将其定义为static:

static NSUInteger count;
Run Code Online (Sandbox Code Playgroud)

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