Ich lese den Abschnitt über Array-Arithmetik in K & R und stieß auf etwas neugierig. Ich habe den ganzen Absatz für den Kontext geschrieben, aber ich konzentriere mich hauptsächlich auf den fetten Teil.C Zeiger Arithmetik für Arrays
Wenn p und q Punkt an die Mitglieder des gleichen Array, dann Beziehungen wie ==, ! =, <,> =, usw., richtig zu arbeiten. Zum Beispiel ist p < q wahr, wenn p auf ein früheres Mitglied des Arrays zeigt als q. Jeder Zeiger kann sinnvoll für Gleichheit oder Ungleichheit mit Null verglichen werden. Aber das Verhalten ist nicht definiert für Arithmetik oder Vergleiche mit Zeigern, die nicht auf Mitglieder desselben Arrays zeigen. (Es gibt eine Ausnahme: die Adresse des ersten Elements über das Ende eines Arrays kann in Zeigerarithmetik verwendet werden.)
Was für diese Ausnahme ist der Grund? Wird ein zusätzliches Stück Speicher am Ende eines Arrays zugewiesen, wenn ihre Größe definiert ist? Wenn ja, zu welchem Zweck? Soll das Array mit einem Nullzeichen enden?
Der einfachste Weg dies zu verstehen ist: a [b] = a + b. Eine Erklärung finden Sie auf Seite 98 – SheetJS
@Nirk: Huh? Was hat das damit zu tun? – jason