title: Reverse a string using recursion
body: <p>I got this code from the internet but I couldnt get the whole code.
  for example <code>if(*str)</code> . What does this code mean? and also can a string be returned? I thought that an array in main can be changed
  directly in a function but here its been returned..</p>
  
  <pre><code>#include&lt;stdio.h&gt;
  #define MAX 100
  char* getReverse(char[]);
  
  int main(){
  
      char str[MAX],*rev;
  
      printf("Enter  any string: ");
      scanf("%s",str);
  
      rev = getReverse(str);
  
      printf("Reversed string is: %s\n\n",rev);
      return 0;
  }    
  
  char* getReverse(char str[]){
  
      static int i=0;
      static char rev[MAX];
  
      if(*str){
           getReverse(str+1);
           rev[i++] = *str;
      }
  
      return rev;
  }
  </code></pre>