-> vs. -->
-
Hallo,
ich habe vorhin zufällig herausgefunden, dass es nicht nur -> gibt, sondern auch -->, --->, ...
Sowas hab ich bisher noch nie gesehen, was bedeutet so ein Doppelpfeil?
Hier ein Screenshot wie das Ganze aussieht:
http://www.abload.de/img/borlandt39h.jpg
Nach dem 4. - funktioniert das ganze nur noch beim 6., 8., 10., etc. Kompilieren lässt sich das ganze auch noch, wenn man allerdings über diese Stelle steppt, dann gibt es einen Speicherfehler. Erst dachte ich, dass das vielleicht ein Borland Bug ist, aber das selbe Verhalten gibt es auch im Visual Studio.
Hat das ganze einen Sinn oder ist das vielleicht wirklich ein Bug?greetz KN4CK3R
-
Das stimmt nicht ganz - das ist nur ein sehr gemeiner Trick:
X-> Y
ist(*X).Y
(normales X -> Y)
X--> Y
ist(X--) > Y
X---> Y
ist `(*(X--)) > Y`
danach wird es nur noch schwachsinnig.
-
aber dann dürfte er doch ab dem zweiten - nicht mehr das Auswahlfenster anzeigen, wenn das nur ein Vergleich wäre oder nicht?
greetz KN4CK3R
-
Hallo
Doch X---> wird interpretiert als (X--)->. Und auch nach dem Operator -- (siehe Zeigerarithmetik) ist das Ergebnis vom gleichen Typ wie X, und deshalb wird nach dem -> wieder die Elemente-Auswahl angezeigt. Und dazwischen kannst du auch beliebig viele -- hängen. Syntaktisch ist das korrekt, aber führt eben zu undefiniertem Verhalten.
bis bald
akari
-
ok, danke für die Erklärung. Gehört also in die Schublade "sehr schlechter Schreibstil"
greetz KN4CK3R
-
Als Zugriff auf statische Attribute und Methoden muß ich mir ---> wohl mal angewöhnen.
-
volkard schrieb:
Als Zugriff auf statische Attribute und Methoden muß ich mir ---> wohl mal angewöhnen.
Wieso?
Diesen ganzen Quatsch kenne ich eh nur vonint counter = arrayLength; while(counter --> 0) // strebt gegen 0 (inklusive; \ ist gleich for(int i = arrayLength - 1; i >= 0; i --) ;
Was bingt das bei statische Attribute und Methoden?
Und vot allem:
Wird das jemand anderes überhaupt versethen können? / Widerspricht das nicht dem Ziel vom verständlichen, (→ wartbaren) Quelltext?
-
Hallo
Zunächstmal wird durch die Verwendung eines ungültigen Zeigers beim Zugriff auf statische Elemente kein Fehler ausgelöst.
Und ich glaube schon das volkard dies nur ironisch gemeint hat : um nicht sprachsichere Leser zu verwirren. Denn ---> darf man schon als obfuscating ansehen.bis bald
akari
-
Wenn ich recht überlege, darf man ---> sogar beim letzten nichtstatischen Zugriff machen, ist ja postinkrement.