title: Why is the param of strlen a "const"?
body: <p>I'm learning the C language.</p>
  
  <p>My question is:
  Why is the param of strlen a "const" ?</p>
  
  <pre><code>size_t strlen(const char * string);
  </code></pre>
  
  <p>I'm thinking it's because string is an address so it doesn't change after initialization. If this is right, does that mean every time you build a function using a pointer as a param, it should be set to a constant ?</p>
  
  <p>Like if I decide to build a function that sets an int variable to its double, should it be defined as:</p>
  
  <pre><code>void timesTwo(const int *num)
  {
      *num *= 2;
  }
  </code></pre>
  
  <p>or</p>
  
  <pre><code>void timesTwo(int *num)
  {
      *num *= 2;
  }
  </code></pre>
  
  <p>Or does it make no difference at all ?</p>