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

Reply via email to