title: Where are addresses of pointers stored in C?
body: <p>I'm learning C and currently learn about pointers. I understand the principle of storing the address of a byte in memory as a variable, which makes it possible to get the byte from memory and write to the memory address.</p>
  
  <p>However, I don't understand where the address of a pointer is stored. Let's say the value of a pointer (the address of a byte in memory) is stored somewhere in memory - how can the program know where the pointer is stored? Wouldn't that need a pointer for a pointer resulting in endless pointers for pointers for pointers... ?</p>
  
  <hr>
  
  <p><strong>UPDATE</strong></p>
  
  <p>The actual question is: "How does the compiler assign memory addresses to variables". And I found <a href="https://stackoverflow.com/questions/18446171/how-do-compilers-assign-memory-addresses-to-variables">this question</a> which points out this topic.</p>
  
  <p>Thanks to everybody who's answered.</p>