Was ist die Definition von "Array" in C?
Der Standard definiertarray type akribisch, aber ich sehe keine Definition für array.
Wir könnten "Objekt vom Array-Typ" sagen, aber das kann nicht richtig sein als untypisierte Objekte (z. B. durch @ zugewiesener Speicherplatzmalloc
) wird als Array beschrieben.
Motivation Die Spezifikation für%s
imfprintf
(C11 7.21.6.1/8) sagt:
das Argument soll ein Zeiger auf das Anfangselement eines Arrays vom Typ @ se
aber nimm den Codechar s[] = "hello"; printf("%s", s+1);
dann haben wir einen Zeiger auf das zweite Element übergeben. Diese Definition scheint davon auszugehen, dass array meintjeder Satz zusammenhängender Objekte.
Bearbeiten Da ich einige "unklare Fragen" -Stimmen aufgegriffen habe, lautet meine Frage: Was ist diese Definition des Begriffs array wie von ISO / IEC 9899: 2011 verwendet?