Initialisieren char-array in C

Ich bin mir nicht sicher, was in das char-array nach der Initialisierung in der folgenden Weise:

char buf[5]={0,};

Ist das äquivalent zu

char buf[5]={0,0,0,0,0};
  • Ich denke, man kann auch schreiben char buf[5] = ""; das entspricht auch der
  • Ja, Sie sind gleichwertig. Bitte beachten Sie, dass char buf[5] = {4}; entspricht char buf[5] = {4,0,0,0,0};. momentan akzeptierte Antwort spielt auf diese Tatsache mit dem Zitat aus dem C11 standard: "der Rest der Summe soll initialisiert werden, werden implizit die gleichen wie die Objekte, die static Lagerung Dauer." Dies gilt auch für Struktur-Typen sind zusammengesetzte Typen. Nicht referenzierte Mitglieder/sub-Objekte w.r.t. bezeichnet Initialisierungen Verhalten sich auf die gleiche (char buf[5] = {[2] = 2}; entspricht char buf[5] = {0,0,2,0,0};)
  • char buf[5] = {0} entspricht char buf[5]={0,} äquivalent zu char buf[5]={0,0,0,0,0};
InformationsquelleAutor Ren | 2015-05-04
Schreibe einen Kommentar