title: In a function declaration, what does passing a fixed size array signify?
body: <p>This feels like a really stupid thing to ask, but I had someone taking a programming class ask me for some help on an assignment and I see this in their code (no comments on the Hungarian notation please):</p>
  
  <pre><code>void read_dictionary( string ar_dictionary[25], int &amp; dictionary_size ) {...
  </code></pre>
  
  <p>Which, as mainly a C# programmer (I learned about C and C++ in college) I didn't even know you could do. I was always told, and have read since that you're supposed to have</p>
  
  <pre><code>void read_dictionary( string ar_dictionary[], int ar_dictionary_size, int &amp; dictionary_size ) {...
  </code></pre>
  
  <p>I'm told that the professor gave them this and that it works, so what does declaring a fixed size array like that even mean? C++ has no native way of knowing the size of an array being passed to it (even if I think that might've been changed in the newest spec)</p>