Mogę się mylić, ale napewno wskaźniki i tablice mają wiele wspólnego.
int tablica [5] {1,2,3,4,5};
Dostęp do poszczególnych wartości można mieć na kilka sposobów:
tablica[0]; //to wartość 1
*(tablica); //to też wartość 1
tablica; //to adres pierwszego elementu w tablicy
tablica+1; //to adres drugiego elementu tablicy (o indeksie 1);
*(tablica+1); //to wartość elementu spod indeksu 1
Tak więc, tablica zawiera jakby adresy do elementów, a zapis: nazwa_tablicy [nr_indeksu] tak jakby od razu wyłuskuje wartość spod tego adresu. Dla tego myślę, że w obydwóch przypadkach korzystałeś ze wskaźników.
Proponuję, żebyś program wykonał kilkanaście razy i sprawdził czy przypadkiem nie będzie sytuacji, że raz pierwszy zapis będzie wydajniejszy od drugiego, a potem na odwrót.
Wiem, że wygrałem złotą łopatę, ale skoro już się znalazłem w tym wątku...