title: Pointer to Pointer with argv
body: <p>Based on my understanding of pointer to pointer to an array of characters,</p>
  
  <pre><code>% ./pointer one two
  
  argv           
  +----+          +----+
  | .  |   ---&gt;   | .  |  ---&gt; "./pointer\0"
  +----+          +----+
                  | .  |  ---&gt; "one\0"
                  +----+
                  | .  |  ---&gt; "two\0"
                  +----+
  </code></pre>
  
  <p>From the code:</p>
  
  <pre><code>int main(int argc, char **argv) {
      printf("Value of argv[1]: %s", argv[1]);
  }
  </code></pre>
  
  <p>My question is, Why is argv[1] acceptable? Why is it not something like (*argv)[1]?</p>
  
  <p>My understanding steps:</p>
  
  <ol>
  <li>Take argv, dereference it.</li>
  <li>It should return the address of the array of pointers to characters.</li>
  <li>Using pointer arithmetics to access elements of the array.</li>
  </ol>