On Wed, Nov 14, 2007 at 12:39:18AM +0100, 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]);
Yep even stranger. The good thing is that if you add another pair of
parantheses tcc takes it and life is good.
printf("%d\n",sizeof((arr)[0]));
printf("%d\n",sizeof((0)[arr]));
-- gr
Marc