int x(10)
x(0) = 5
I don't think this is a good idea, as you've introduced a syntactic ambiguity between function calls and array access.
For example:
int result = x(0);
Is the right-hand side calling a function 'x' with argument 0, or retrieving the 0th element of array 'x'? This might not impact the compiler much, but it's awful for readability.
The programmer should not have to keep the whole symbol table in her head just to understand how the syntax is being parsed. Down that road lies C++.