Seite 1 von 1

C Array ( c:type:array )

Verfasst: So Jul 05, 2009 11:27 am
von Syntov
Tach
Als ich einen Artikel Korrektur gelesen habe ist mir aufgefallen das manchmal wenn Arrays verwendet werden bei 1 angefangen wurde zu Zählen.
c:type:array hat geschrieben:char MyArray[11]="Hallo Welt";
Wir haben 10 Buchstaben und ein Nullbyte. Daher hat das Array 11 Elemente vom Datentyp char.
Dies hat es auch in ein paar anderen Artikeln.
Als ich den Artikel über die Arrays durchgelesen habe ist dort nirgends ersichtlich das man mit "0" anfängt zu zählen. Oder habe ich als ich Programmieren lernte eine Lektion ausgelassen?

grues Syntov

Re: C Array ( c:type:array )

Verfasst: So Jul 05, 2009 11:33 am
von nufan
Syntov hat geschrieben:Als ich den Artikel über die Arrays durchgelesen habe ist dort nirgends ersichtlich das man mit "0" anfängt zu zählen.
Doch, hier:
c:type:array hat geschrieben:Die Zählweise beginnt bei 0. Um das 'H' anzusprechen, muss man also zum Beispiel

Code: Alles auswählen

MyArray[0] = 'F';
Oder meinst du die Deklaration? Ich hab gesehen, dass du das bei "Call by Reference" ausgebessert hast, aber eben auf einen falschen Wert ;)
Bei der Deklaration zählst du normal (also mit 1 beginnend).
Wenn du einen Array mit 1 Element anlegen willst (auch wenns unlogisch ist ^^), schreibst du also:

Code: Alles auswählen

int array[1];
und nicht

Code: Alles auswählen

int array[0];

Re: C Array ( c:type:array )

Verfasst: So Jul 05, 2009 11:36 am
von Syntov

Code: Alles auswählen

Oder meinst du die Deklaration? Ich hab gesehen, dass du das bei "Call by Reference" ausgebessert hast, aber eben auf einen falschen Wert ;)
Bei der Deklaration zählst du normal (also mit 1 beginnend).
Wenn du einen Array mit 1 Element anlegen willst (auch wenns unlogisch ist ^^), schreibst du also:

Code: Alles auswählen
    int array[1];


und nicht

Code: Alles auswählen
    int array[0];
oh. Darum funktionierten meine Programme nie richtig. hm.
Da habe ich wirklich mal eine Lektion übersprungen.
Aber so ists irgendwie unlogisch.
tja danke für die Aufklärung, wieder mal was gelernt.

Re: C Array ( c:type:array )

Verfasst: So Jul 05, 2009 2:02 pm
von Kerli
Syntov hat geschrieben:Aber so ists irgendwie unlogisch.
Eigentlich ist es doch eh ganz logisch ;) Dir muss nur bewusst werden wo du eine Anzahl (ein Element -> Anzahl ist 1, zwei Elemente -> Anzahl ist 2 ...) und wo du einen Index (erstes Element -> Index ist 0, zweites Element -> Index ist 1, ...) verwendest.