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

Kod obliczający długość wyrazu – nie rozumiem jak on działa
R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 157
0

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

Kopiuj
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?

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

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

R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 157
0

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

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

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

R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 157
0

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

Kopiuj
const char* slowo[]
kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
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.

R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 157
0

A kiedy użyjemy const char a kiedy char ?

ER
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 20
1

Zerknij tutaj

kaczus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łódź
  • Postów: 1405
1

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

  • Rejestracja: dni
  • Ostatnio: dni
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ł.

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.