Ответ 1
С++ не разрешает массивы нулевого размера. Соответствующий компилятор отклоняет код, например:
$ g++-4.8 -pedantic-errors main.cpp
main.cpp:5:14: error: ISO C++ forbids zero-size array 'a' [-Wpedantic]
int a[0];
^
Таким образом, поведение sizeof
здесь просто не имеет значения. GCC позволяет использовать его (без -pedantic
) в качестве расширения компилятора.