Why do you want arrays to start at one?
When you say a[x][y]
, the compiler translates this into: a+(x*num_cols+y)
. If arrays started at one, this would become a+(x*num_cols+y-1)
. This would be an extra arithmetic operation every single time you want to access an array element. Why would you want to slow down programs?