Beginning C character array explanation
From the end of the chapter 1.8:


  "When the name of an array is used as an argument, the value passed to
  the function is the location or address of the beginning of the array
  - there is no copying of array elements. By subscripting this value, the function can access and alter any element of the array".


So, when you pass array as an argument to a function, you don't create a local copy of array. Instead, you create a pointer (Chapter 5) and work with it as with an array.