title: Understanding addressing of strings in 2D arrays
body: <pre><code>#include&lt;stdio.h&gt;
   void main()
  {
    char s[10][10];
   int i;
  
   for(i=0;i&lt;4;i++)
        scanf("%s",s[i]);
   printf("%s",s);
   printf("%s",s+1);
   printf("%s",s[1]+1);
  }
  </code></pre>
  
  <p>When I type the above line of code first <code>printf</code> statement will print the first string and second <code>printf</code> will print the second string since <code>s[1]</code> is equivalent to <code>s+1</code>. But the third <code>printf</code> will print the second string starting from the second character.</p>
  
  <p>If <code>s[1]</code> is equivalent to <code>s+1</code> why <code>s[1]+1</code> does not give the result of <code>s+2</code>?</p>
  
  <p>I do not get the idea of address calculation for 2D string array.</p>