Moin,
Aber schon die Klammern beim return verhindern wirksam, dass eine Referenz nach außen gelangen kann.
tun sie das wirklich? Das würde ja bedeuten, dass gesetzte Klammern den Typ des Operanden verändern, &dummy wäre also etwas anderes als (&dummy) - das fände ich aber sch...
Wie sieht das denn in C aus?
int *min(int a, int b)
{ if (a<b)
return (&a);
else
return (&b);
}
Hier bewusst umständlich formuliert, ohne den ternären Operator zu verwenden.
Ob ich das Argument des return-Statements in Klammern setze oder nicht, ist völlig gleichgültig, es bleibt trotzdem ein int*, also eine Referenz auf ein int.
Ich kann mir grad nicht vorstellen, wie der "Referenz-Zurückgeb-Operator" das Klammernpaar außer Gefecht setzen soll.
Tut er nicht - die Klammern haben keine Funktion, außer der Gruppierung und damit evtl. der Veränderung der Reihenfolge von Operationen. Und so hatte ich das in PHP bisher auch gesehen.
Das würde bedeuten, dass einige Operatoren andere bedeutungslos machen können.
Nein.
So long,
Martin
Lieber Blödeleien als blöde Laien.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(