Wpis z mikrobloga

Mircy z #cpp mam problemo z dynamicznymi tablicami. A w zasadzie to ciągle mi się miesza.
Taki zapis rozumia:

int *tablica;

tablica = new int [3];

I tutaj np. wstawiam:

for(i =0; i<3; i++) {

*tablica = i;

tablica++;

}

Takiego zapisu nie rozumia:

int *tablica;

tablica = new int [3];

I tutaj np. wstawiam:

for(i =0; i<3; i++) {

tablica[i] = i;

}


Czemu używam zapisu "tablica[i]"? Przecież samo "tablica" powinno zwracać tylko adres zerowego miejsca...
#naukaprogramowania
  • 23
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@inplaz:

tablica[i] jest równoznaczna z *(tablica + i)


A *(tablica + i) to to samo, co *(i + tablica).
A *(i + tablica) to to samo co i[tablica]. ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@Dassault możesz tak skrocic. Co do problemu ze wskaźnikiem pamiętaj że pierwszy sposób przestawia wskaźnik czyli koniec końców możesz się pogubić na co on pokazuje. Zalecam korzystanie z drugiego.
  • Odpowiedz