title: Is it possible to access a physical memory address using C programming?
body: <p>For example, when we write: <br/>
  <code>int a;</code> <br/>
  and doing <code>&amp;a</code> gives us some address in hex form <code>0x12345678</code> which we call as virtual address. <br/>
  Now when we try to do <br/>
  <code>int *temp = 0xfe000000;</code><br/>
  does this address acts like a virtual address or a physical address? As far as I know virtual addresses are given by OS which are further converted to physical addresses by MMU. </p>
  
  <p>As far as I know paging mechanism takes place in between which maps the virtual address to available physical address. What happens when we give an address to a pointer? Does that address acts like virtual address which is then handled by MMU to point to a particular physical address or it acts like a physical address in itself?</p>
  
  <pre><code>int temp;
  printf("%x \n", &amp;temp);
  int *temp2 = 0xfe000000; //This is just an example address. It could be any address
  </code></pre>
  
  <p><br/>
  Does this address (0xfe000000) acts like a real physical address or a virtual address?</p>