In C89 A.1.2.2 Declarations
direct-declarator [ constant-expression ]
In C99 A.2.2 Declarations
direct-declarator [ type-qualifier-list_opt assignment-expression_opt ]
I understand assignment-expression_opt as var = 1;. But arrays are not declared like int arr[i = 0];. Why does C99 use the term "assignment-expression" instead of "constant-expression"and what does it mean?