C Array ( c:type:array )

Diskussionen zu Tutorials, Änderungs- und Erweiterungswünsche
Antworten
Syntov
Beiträge: 68
Registriert: Mo Feb 09, 2009 4:45 pm

C Array ( c:type:array )

Beitrag von Syntov » So Jul 05, 2009 11:27 am

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
Wer nicht auf seine Weise denkt, denkt überhaupt nicht.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: C Array ( c:type:array )

Beitrag von nufan » So Jul 05, 2009 11:33 am

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];

Syntov
Beiträge: 68
Registriert: Mo Feb 09, 2009 4:45 pm

Re: C Array ( c:type:array )

Beitrag von Syntov » So Jul 05, 2009 11:36 am

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.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: C Array ( c:type:array )

Beitrag von Kerli » So Jul 05, 2009 2:02 pm

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.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Antworten