Frage von Kirra1, 15

Welches Ergebnis liefert die folgende Befehlssequenz (C)?

Hallo warum erzeugt die folgende Befehlsequenz : xax ?? ich dachte es soll xa0b0000000x sein ?!

char kette[10]={0}; kette[0]= 'a'; kette[2]= 'b'; printf("x%sx", kette);

Antwort
von spaghetticode, 5

Wie schonmal gesagt: Hör bitte damit auf, jede einzelne Codezeile zu erfragen. Kauf dir ein Buch und lerne endlich die Grundlagen sauber und vernünftig.

Antwort
von PWolff, 10

Siehe http://www.c-howto.de/tutorial-strings-zeichenketten-nullterminiert.html

Insbesondere steht die 0 in {0} nicht für das Zeichen '0', sondern für die Zahl 0.

Kommentar von Kirra1 ,

also kette [10] besteht nur aus einer Größe von 0 und nicht von 10 ??

Kommentar von PWolff ,

kette[10] hat selbstverständlich 10 Elemente.

Aber ein String geht bis zum ersten Zeichen mit dem Code 0. ("Nullterminiertes String")

Das wird z. B. auf der Seite, die ich in der Antwort verlinkt habe, an einem Beispiel erklärt.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten