title: Why this warning "warning: assignment to 'int *' from incompatible pointer type 'int (*)[3]'"?
body: <p>If array name points to the first element , then n should give location of 2,
  why this warning is there then?</p>
  <pre><code>#include &lt;stdio.h&gt;
  
  int main()
  {
      int n[3][3] = {
          {2,4,3},
          {6,8,5},
          {3,5,1}
        };
        int i ,*pt;
        pt = n ;
       
        for (int i = 0; i &lt;=8; i++)
        {
          printf(&quot;%d\n&quot;,*(pt + i) );
        }
  }
  </code></pre>
  <p>But when I write <code>pt = *n</code>; it works just fine. Why??</p>