On Nov 13, 2007, at 3:39 PM, grischka wrote:

Could a C guru out there please tell me why the following works?
Extra points if you can explain why it makes sense.

#include <stdio.h>

int main(){
int arr[10];
printf("%d\n",sizeof arr[0]);  // ok
printf("%d\n",sizeof(arr[0])); // ok
printf("%d\n",sizeof(arr)[0]); // ok, but why?
return 0;
}

And what about that one:

    printf("%d\n",sizeof (0)[arr]);

Why wouldn't this work? These all seem to be explicitly allowed by the C99 grammar.

-Chris


_______________________________________________
Tinycc-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to