Какое значение по умолчанию NSUInteger в локальной области?

Учитывая следующий фрагмент:

- (void)doSomething
{
    NSUInteger count;
}

Что такое счет? Это гарантированно будет 0?

1 ответ

Решение

Нет, он не гарантированно равен нулю, поскольку это локальная автоматическая переменная. Без инициализации его значение не определено. Если вы хотите, чтобы он был равен нулю, либо инициализируйте его:

NSUInteger count = 0;

или определить его как static:

static NSUInteger count;

поскольку переменные со статической длительностью хранения неявно инициализируются до нуля, но обратите внимание, что это имеет побочные эффекты (а именно, значение сохраняется между вызовами функций).

Другие вопросы по тегам