Warum ist das Ergebnis dieser Besetzung kein Wert?

Ich brauche einen Rat bei diesem seltsamen Verhalten - lass uns diesen Code haben:

int ** p;

Dies kompiliert ohne Probleme:

p++;

Aber dieses:

((int**)p)++;

Gibt mir diese Fehlermeldung:“error: lvalue required as increment operand”.

Ich werfe zup an der art ist es schon, ändert sich nichts, also wo liegt das problem? Dies ist eine vereinfachte Version des Problems, auf das ich gestoßen bin, als ich versucht habe, eine alte Version von zu kompilierengdb. Ich nehme also an, dass dies funktioniert hat und sich etwas geändert hat. Irgendeine Idee, was mit dem zweiten Beispiel falsch ist?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage