C++ never passes arrays to a function. Instead, the argument is implicitly converted to a pointer that contains the address of the first array element. For example:
void f(char s[]);int main(){ char buff[10]; f(buff); // buff is quietly converted to '&buff[0]'}
Because of this implicit conversion, you may access elements of an array in two forms:
*(s+n) = 'a'; // pointer notations[n] = 'a' // array notation
In fact, even if s is a real pointer, you may use the [] notation:
char *s=new char[10];s[0]='0';