Operacje na wskaźniku na tablicę.

Operacje na wskaźniku na tablicę.
NanTl
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Witam, przekazując wskaźnik na tablicę, można z niego korzystać na 2 sposoby, tutaj jest prosty przykład.

Kopiuj
void clearArray(int *arr, int size)
{
    for(int i = 0; i < size; i++)
    {
//        *arr = 0;
//        arr += 1;

//        arr[i] = 0;
    }
}

Które podejście jest lepsze? Jest między nimi jakaś różnica? Albo "best practice" mówiące jak na takim wskaźniku operować?

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
3

Kompilatory w większości przypadków utworzą identyczny kod, więc wydajnościowo nie ma się co przejmować. Co do czytelności, to sprawa zależy od tego, co robisz. W tym przypadku zapis wyglądający jak tablica wydaje się znacząco czytelniejszy.

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
2

Zero różnicy:
https://godbolt.org/g/RsDc1f

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.