@ VilleK, its slightly slower.

[pascal]
uses windows;

procedure Arr(var a: array of integer);
var
wrkPointer: ^integer;
i: integer;
begin
wrkPointer := a;
for i:=0 to high(a) do
begin
wrkPointer^ := wrkPointer^ div 3;
inc(wrkPointer);
end;
end;

procedure Arr2(var a: array of integer);
var
i: integer;
begin
for i:=0 to high(a) do a[i] := a[i] div 3;
end;

var
a: array of integer;
i: integer;
t1,t2,fq: int64;
begin
setlength(a, 100000);
for i:=0 to high(a) do a[i] := random($FFFFFFFF);

QueryPerformanceFrequency(fq);
QueryPerformanceCounter(t1);
Arr(a);
//Arr2(a);
QueryPerformanceCounter(t2);

writeln(((t2-t1)/fq):8:;
end.
[/pascal]

Results:
0.00022s (for Arr)
0.00026s (for Arr2)

I don't know if this plus in performance really justifies the means.