c - Why (and when) do I need to use parentheses after sizeof? - Stack Overflow Why (and when) do I need to use parentheses after sizeof? The below fails to compile: typedef int arr[10]; int main(void) { return sizeof arr; } sizeof.c:3: error: expected expression before ‘arr’ but if I change it to sizeof(arr); everything is ... stackoverflow.com According to 6.5.3, there are two forms for sizeof ..