NULL - служебный дефайн, который есть, в частности, в венде.
Общей практикой является int i = 0; Хотя бы потому, что так короче.
Проблема в другом. В int.
В большинстве языков, int - это 32 бита со знаком, то есть, два гигабайта. В современных же системах памяти - десятки-сотни-тысячи гигабайт, а программы обрабатывают разного рода бигдату и ML. Так что индексация массива интами может легко выйти трудноуловимыми багами.
Поэтому правильно писать for(size_t i = 0; ..