title: What is meant by: int (*b)[100]
body: <p>What is meant  by: <code>int (*b)[100]</code>, and what is the clarification of this code to produce this result?</p>
  
  <pre><code>#include &lt;iostream&gt;
  void foo(int  a[100])
  {
      a [1]= 30 ;
      std::cout&lt;&lt;a[1]&lt;&lt; std::endl;
  }
  
  void boo(int a[100])
  { 
      std::cout&lt;&lt;a[1]&lt;&lt; std::endl; 
  }
  
  int main()
  {
      int (*b)[100] = (int (*) [100]) malloc(100 * sizeof(int));
      *b[1] = 20;
      std::cout&lt;&lt; *b[1] &lt;&lt; "\t" &lt;&lt; b[1] &lt;&lt; std::endl;
      foo(*b);
      boo(*b);
      std::cout&lt;&lt; *b[1] &lt;&lt; "\t" &lt;&lt; b[1] &lt;&lt; std::endl;
  }
  </code></pre>
  
  <p>The above code outputs:</p>
  
  <pre><code>20  0x44ba430
  30
  30
  20  0x44ba430
  </code></pre>