int tablica[10], a;
for(a=0; a<10; a++)
tablica[a]= 0;
int tablica[10], *wsk;
for(wsk=0; wsk<tablica+10; wsk++)
*wsk = 0;
Aby obliczyc indeks kompilator wstawia do programu instrukcje pobierające wartość a i mnozące je przez wielkosc typu int
mozenie to zajmuje czas i miejsce.
w wskaznikach mnozenie wykonywane jest w kroku reguratora petli, wartość jeden jest przeskalowana do wielkosci typu int przed
jej dodaniem do wskaznika. Jednak wystepuje jedna duza roznica te same dwie wartosci (1x4) są mnożone w każdym przebiegu
petli. W wynku tego mnozenie to jest w czasie kompilacji wykonywane tylko jednokrotnie - program zawiera instrukcje dodajace
cztery do wskaznika. W CZASIE dzialania progrmu nie jest wykonywane żadne mnożenie.
Dla przykadu
a=fun(); a=fun();
tab[a]=0; *(tab+a) =0;
wykonanie bedzie identyczne bo w obu przypadkach wymagane bedzie mnozenie potrzebne do przeskalowania wartosci.
warto zdeasemblowac programy i samemu sprawdzic
pozdrawiam