Ich bin mir nicht sicher, ob unter Aussage auch durch Standard-C oder nichtIst * p ++ + = 2 gut definiert?
*p1++ += 2;
oder andere ähnliche Anweisung definiert:
*E1++ <operator>= E2
Von Standard-C über post-Schritt:
Das Ergebnis des Operators postfix ++ ist der Wert des Operanden. Nachdem das Ergebnis erhalten wurde, wird der Wert des Operanden erhöht. (Das heißt, der Wert 1 des entsprechenden Typs wird hinzugefügt.) Weitere Informationen über Einschränkungen, Typen und Konvertierungen sowie die Auswirkungen von Operationen auf Zeiger finden Sie unter Diskussionen über additive Operatoren und Verbundzuweisung für 10. Der Nebeneffekt der Aktualisierung des gespeicherten Wertes des Operanden soll zwischen der vorherigen und der nächsten Sequenz Punkt auftreten.
Und über coumpund-Zuordnung:
Verbindung Zuweisung der Form E1 op = E2 aus der einfachen Zuweisungsausdruck unterscheidet sich nur E1 = E1 op (E2) daß der L-Wert E1 ist nur einmal bewertet.
Nun, was genau hat Ihren Verdacht ausgelöst, dass es undefiniert sein könnte? Für mich zum Beispiel sieht alles gut aus, was es für mich schwierig macht, überhaupt mit der Beantwortung der Frage zu beginnen: Ich weiß nicht, worauf ich mich konzentrieren soll. – AnT
Schreiben Sie keine Codes in ein Projekt wie dieses, außer dass Sie danach suchen. – wshcdr
Diese Art von unlesbarem Code zu schreiben, nur um mehr Code in einer Zeile zu stopfen, ist eine schlechte Programmierung. :) – Almo