Why was the array type of formal parameter of a function converted to pointer?
<p>The output of the following function is "int *", which means the formal parameter is converted to a integer pointer. Is there any necessary reason for this design? Why can't we reserve the array type?</p>

<pre><code>// the output is "int *"
#include&lt;typeinfo&gt;
void Func(int ar[5])
{
  printf("%s\n", typeid(ar).name();
}
int main()
{
  int ar[5];
  Func(ar);
  return 0;
}
</code></pre>
