Мое личное предпочтение - немедленно инициализировать любую переменную. Однако в приведенном вами примере эти два метода эквивалентны.
В C
языках (т. Е. C
, C++
, Obj-C
) переменные, которые не инициализируются немедленно, могут содержать случайные значения мусора. Использование переменной до ее инициализации приводит к непредвиденному поведению (от надежного сбоя до неожиданного поведения).
Пример
Рассмотрим следующий пример:
int abs;
if (argument > 0) abs = argument;
else if (argument < 0) abs = -1 * argument;
NSLog(@"%i", abs);
Здесь код оставляет переменную abs
неинициализированной, если argument
равно 0. Таким образом, вы бы регистрировали случайные значения, а затем приводили к искажению значений в остальной части программы; и было бы трудно определить, где проблема!
Если вы используете неинициализированную ссылку, вы, скорее всего, получите EXC_BAD_ACCESS
.