title: What argv = NULL means?
body: <p>I'm trying to make arguments information umodifiable.</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  
  int main(const int argc, const char* const argv[]) {
    //argc = 1;         // error: assignment of read-only parameter 'argc'
    //argv[0] = "argv"; // error: assignment of read-only location '*argv'
    //argv[0][0] = 'a'; // error: assignment of read-only location '**argv'
    return EXIT_SUCCESS;
  }
  </code></pre>
  
  <p>Now when I do this,</p>
  
  <pre class="lang-c prettyprint-override"><code>argv = NULL; // no compile-time error
  </code></pre>
  
  <p>the compiler makes silence.</p>
  
  <p>What does the statement actually do?
  How can I prohibit my codes from doing that?</p>