title: Pointer to two dimensional array
body: <p>Considering the following code:</p>
  
  <pre><code>int main()
  {
      static char wer[3][4] = {"bag","let","bud"};
      char (*ptr)[4] = wer;
  
      putchar(*(*(ptr+1)+2));
      putchar(*(wer[1]+2));
      putchar(*(ptr+1)+2);
  
      return 0;
  }
  </code></pre>
  
  <p>the first and second putchar() statement points to the 1st row's 1st element i.e <code>e</code> (considering 0 as the base location), whereas in the 3rd putchar() statement, it shows a garbage value.
  <br>
  But as far as the statement says, <code>(*(ptr+1))</code> clearly means point to the 2nd row. Why does it happens so? <br>
  Is it due to some <code>putchar()</code> norm, or am I complete off the pointer concept?</p>