title: explanation of the souce code of strcat()
body: <pre><code>    char *
  STRCAT(char *dest, const char *src)
  {
    strcpy(dest + strlen(dest), src);
    return dest;
  }
  </code></pre>
  <p>what's the meaning of the code :dest + strlen(dest)?
  and when I use the code like below:</p>
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;string.h&gt;
  void main()
  {
      char s[10]= &quot;123456789&quot;;
      char str[10] = &quot; 123456789&quot;;
      strcat(s,str);
      printf(&quot;%s\n&quot;,s);
      printf(&quot;%d&quot;,sizeof(s));
      
  }
  </code></pre>
  <p>why the string s didn't overflow  and the sizeof(s) did not change?</p>