Kod obliczający długość wyrazu – nie rozumiem jak on działa

0

Tutaj mam kawałek kodu który liczy długość słowa :

int dlugoscwyrazu(const char* slowo)
{
  int d=0;
  while(slowo[d]!=0)
    wynik++;
  return d;
}

I nie rozumiem do końca jak on dziala. Funkcja dostaje wskaźnik na adres zmiennej char a pozniej sprawdzamy czy kolejno adresy są równe zeru?

2

Nie, sprawdzasz czy wartość pod wskaźnikiem jest równa zeru, a nie jej adres.

0

Dlaczego wartość pod wskaźnikiem skoro argumentem funkcji jest wskaźnik?

1

Sprawdzasz zawartość, ponieważ nie interesuje Cię adres wskazywanego stringa, tylko jego zawartość. W końcu ostatnim elementem C-stringa jest zero.

0

Czyli to jest przekazanie tablicy do funkcji i jest równoważne ?

const char* slowo[]
1

Nie, const char* slowo możesz uznać za równoznaczne z const char slowo[]. To, co podałeś to wskaźnik na wskaźnik.

0

A kiedy użyjemy const char a kiedy char ?

1

Zerknij tutaj

1

ale ten kod ma blad, co to jest zmienna wynik?

1
kaczus napisał(a):

ale ten kod ma blad, co to jest zmienna wynik?

Zamień d na wynik (czy wynik na d), i nie będę błędu, i kod będzie działał.

1 użytkowników online, w tym zalogowanych: 0, gości: 1