title: Why is it possible to assign a const char* to a char*?
body: <p>I know that for example <code>"hello"</code> is of type <code>const char*</code>. So my questions are:</p>
  
  <ol>
  <li><p>How can we assign a literal string like <code>"hello"</code> to a non-<code>const char*</code> like this:</p>
  
  <pre><code>char* s = "hello";  // "hello" is type of const char* and s is char*
                      // and we know that conversion from const char* to
                      // char* is invalid
  </code></pre></li>
  <li><p>Is a literal string like <code>"hello"</code>, which will take memory in all my program, or it's just like temporary variable that will get destroyed when the statement ends?</p></li>
  </ol>