Если вы объявляете переменную, но не указываете ее значение, она считается «неинициализированной». Неинициализированная переменная в C имеет неопределенное значение - обычно это мусор, содержащий то, что произошло по этому адресу в последний раз, когда что-то было записано там. Строго говоря, «неопределенный» означает, что вы ни при каких обстоятельствах не должны пытаться использовать это значение. (Если вы выполните поиск «носовых демонов», это будет объяснено довольно красочными, а также полезными терминами. *)
Эта переменная, будучи локальной, создается заново при каждом запуске метода и, таким образом, получает новое фактическое , хотя технически неопределенное значение при каждом проходе.
Обычно рекомендуется не оставлять переменные неинициализированными, потому что «случайное» значение может вызвать ошибки, которые трудно найти, и иногда вызывает вышеупомянутых носовых демонов. Вы не делаете ничего плохого, но если вы не устанавливаете фактическое значение в одной или двух строках объявления, я бы посоветовал установить значение 0 или какое-то разумное значение по умолчанию:
int blockCount = 0;
* См. Также: Что происходит с объявленной неинициализированной переменной в C? Имеет ли оно значение?