Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

zrozumienie poniższego kodu

bnk120 17 Mar 2012 00:01 890 3
  • #1 17 Mar 2012 00:01
    bnk120
    Poziom 7  

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Chodzi mi głównie o to, jak należy rozumieć deklarowanie "rh = -1", później porównywanie "bf != rh". Co mi takiego daję, że zadeklarowałem "rh = -1". Gdy rh będzie niezadeklarowana czyli po prostu "rh", w programie nic się nie zmienia. Nie rozumiem kompletnie dlaczego deklaruję się tą zmienną.

    Proszę pamiętać o używaniu znaczników syntax. Opcja Listing kodu. Proszę to poprawić.- arnoldziq

    0 3
  • #2 17 Mar 2012 06:59
    Tomex
    Poziom 20  

    rh przyjmuje ostatni znak z poprzedniej pętli, i w kolejnym obiegu jest sprawdzane czy nowy znak jest różny od niego.

    Tylko jedno mi nie pasuje , skoro te zmienne sa typu integer, to zapis bf == '.' jest błędem, bo kropka jest typu string

    0
  • #3 17 Mar 2012 07:42
    Dżyszla
    Poziom 42  

    Tomex - faktycznie, nie jest to poprawny logicznie kod, gdyż getch zwraca zmienną char a nie int. Niemniej Char to 8-bitowa liczba, a int - 32. Więc Wciąż będzie to działać i zapis, w który wątpisz, jest poprawny i działający. W C zapis w taki sposób znaku to tylko wartość ASCII znaku (tłumaczone już na etapie kompilacji), a nie ciąg znaków.

    0
  • #4 17 Mar 2012 12:54
    bnk120
    Poziom 7  

    Dobrze, czyli pętla będzie sprawdzała po kolei znaki, aż do tego znaku "rh" ? I po co zmienna "rh" staję się kropką ? W ten sposób ma być tymczasową pamięcią dla tego znaku ? A co z wartością "rh" ? Czy jest ona ważna ? Dlaczego akurat -1? Jak zmienię jej wartość na inną, to program dalej działa prawidłowo.

    0