Hi,
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;
}
gcc compiles it:
$> gcc -ansi -std=c99 -Wall sizeof.c && ./a.out
4
4
4
$> tcc sizeof.c
sizeof.c:7: pointer expected
Thanks,
Marc
--
Marc Andre Tanner >< http://www.brain-dump.org/ >< GPG key: CF7D56C0
_______________________________________________
Tinycc-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/tinycc-devel