Notes: * Used DJGPP 2.01 and Allegro 3.1 final * All results while running under Windows 95, no other apps running (so timer accuracy only 0.005). * The tear time is the time for it to run the for loops with no code in the brackets. * The system used was a P200MMX w/32 megs of ram and win 95 gcc -s -m486 -ffast-math -fomit-frame-pointer times: Tear Time (for loop): 0.130 Minus tear time: 0.000 Array access by [] operator: 0.530 Minus tear time: 0.400 Array access by incrementing pointer: 0.535 Minus tear time: 0.405 gcc -s -m486 -o3 -ffast-math -fomit-frame-pointer times: Tear Time (for loop): 0.035 Minus tear time: 0.000 Array access by [] operator: 0.230 Minus tear time: 0.195 Array access by incrementing pointer: 0.225 Minus tear time: 0.190 This is a segment of the code showing approximately what it is timing: tme = 0; install_int(timeproc, 5); for (int c=0; c<1000; c++) { arrptr = myarr; for (int d=0; d<5000; d++) { *(arrptr++) = d; } } remove_int(timeproc); Conclusions: Even over 5,000,000 calculations, the difference between accessing by [] and accessing by pointer is immaterial in a sequential for loop.