title: why are these NOT overloading functions?
body: <p>I read here:
  <a href="https://stackoverflow.com/questions/1335786/c-differences-between-char-pointer-and-array">C: differences between char pointer and array</a>
  that char pointers and char arrays are not the same. Therefore, I would expect these to be overloading functions:</p>
  
  <pre><code>#include &lt;iostream&gt;
  using namespace std;
  
  int function1(char* c)
  {
      cout &lt;&lt; "received a pointer" &lt;&lt; endl;
      return 1;
  }
  int function1(char c[])
  {
      cout &lt;&lt; "received an array" &lt;&lt; endl;
      return 1;
  }
  
  int main()
  {
      char a = 'a';
      char* pa = &amp;a;
      char arr[1] = { 'b' };
  
      function1(arr);
  }
  </code></pre>
  
  <p>Yet upon building I get the error C2084: function 'int function1(char *)' already has a body. Why does the compiler seem to consider a char pointer to be the same as a char array?</p>