Bo w metodach parametr metody "przykrywa" składową klasy.
W function() inkrementujesz zmienną tymczasową, która znika po zakończeniu życia metody (dlatego inkrementacja nie jest widoczna po powrocie)
W function2() inkrementujesz zmienną wskazywaną przez zmienną tymczasową - choć wskaźnik znika po zakończeniu funkcji, to dane przez niego wskazywane zostały zmienione trwale.
Odpuść sobie na razie wskaźniki i skup się na ogarnięciu przepływu danych w "zwykły" sposób. Jak tego się nauczysz, dopiero zabieraj się za wskaźniki.
Z budowy function i function2 wnoszę, żę nawet w brzybliżeniu nie rozumiesz, o co chodzi w klasach.
Parę dni temu dostałeś na gmaila wrzutkę PDF, czy zabrałeś się już za lekturę?