Why (and when) do I need to use parentheses after sizeof?

Приведенный ниже код не компилируется:

typedef int arr[10];
int main(void) {
    return sizeof arr;
}

sizeof.c:3: error: expected expression before ‘arr’

, но если я изменю его на

sizeof(arr);

, все в порядке. Почему?

74
задан Ben Voigt 2 November 2014 в 16:39
поделиться