title: Assign char array to another char array
body: <p>I know we can not assign a char array to another char array like:</p>
  
  <pre><code> char array1[] = "Hello";
   char array2[] = "Hi!";
  
   array1 = array2;//does not compile
  </code></pre>
  
  <p>But:</p>
  
  <pre><code> char array1[] = "Hello";
   char *array2 = NULL;
  
   array2 = array1; //compile
  
   printf("%s", array2); //display Hello
  </code></pre>
  
  <p>This works.</p>
  
  <p>Can anyone please explain why?</p>
  
  <p>Thanks!</p>