title: Recursive implementation of strcat function in C
body: <p>I was going through the <a href="http://www.geeksforgeeks.org/write-one-line-functions-for-strcat-and-strcmp/" rel="nofollow">implementation</a>! of <b>strcat</b> function in C.
  I am unable to understand how they have used the <b>recursion</b> along with <b>pointers</b>.</p>
  
  <p><em>Below is the code Snippet from that source.</em><br></p>
  
  <pre><code>char dest[100] = "I love";
  char *src = "food";`
  
  /* my_strcat(dest, src) copies data of src to dest. */
  void my_strcat(char *dest, char *src)
  {
    (*dest)? my_strcat(++dest, src): (*dest++ = *src++)? my_strcat(dest, src): 0 ;
  }
  </code></pre>