Max Trense wrote:
Am Samstag, 7. April 2007 15:34 schrieb Robert Fey:
Max Trense wrote:
Am Samstag, 7. April 2007 12:09 schrieb Robert Fey:
-Was macht folgendes C-Code (Wieder Telefonisch!!!)
int main(){
int n=1;
puts(((char*)&n[0]) == 1 ? "y":"n");
}
gibt y aus
Nope. Das kompiliert nicht.
&n[0] ist nicht korrekt, da n kein Array/Pointer ist und die eckigen
Klammern eine höhere Präzedenz besitzen als der Referenzierungs-Operator.
Wieder was gelernt.
Wenn ich jedoch &(int*)n[0] schreibe müsste es gehen, oder?
Es reicht schon (&n)[0]
Auch wenn das wieder nicht ganz sauber ist ;-)
Max
oder:
int main(){
int n=1;
puts(((char*)&((int*)n)[0]) == (char*)1 ? "y":"n");
}
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org