title: initializing char pointer as string vs other type pointers as arrays
body: <p>I've got a question about initializing char pointers vs other data type pointers. Specifically, we are allowed to initialize char pointers as follows:</p>
  
  <pre><code>char *char_ptr = "Hello World";
  </code></pre>
  
  <p>As far as I know, the only thing special about a string is that it is a '0' terminated character array. However, we are not allowed to do the following:</p>
  
  <pre><code>int *int_ptr = {1,2,3,4};
  </code></pre>
  
  <p>but we must do this:</p>
  
  <pre><code>int int_arr[] = {1,2,3,4};
  int_ptr = int_arr;
  </code></pre>
  
  <p>in order to let int_ptr point to the first element of int_array.</p>
  
  <p>In the char case, we have not explicitly defined the string "Hello World" as a char array before letting char_ptr point to the string, but have initialized the char_ptr directly using the string "Hello World".</p>
  
  <p>My question is, why is this the case, what is special about strings that allows us to do this but can't do so with other types?</p>
  
  <p>Thanks in advance,</p>
  
  <p>Sriram</p>