Posts have URLs you can link to, but they don't point to any real file. Instead, they are translated by WordPress into a request to access the post from the table in the database and display it in the format defined by the WordPress template files for the template you specified (or defaulted for you).
Technically, it is possible for the database to reside on the other side of the world on a completely different domain name, web server, etc. I have, in fact, done that when moving WordPress from one web hosting file to another. Move the files first, then the database later.
Since you asked specifically about linking to posts, here is the official doc.: http://codex.wordpress.org/Linking_Posts_Pages_and_Categories
Note how, without Permalinks setup, you specify the Post Number:
<a href="index.php?p=123">Post Title</a> as ?p=123 which, in essence says, call program index.php and pass it a parameter p with a value of 123 which index.php will translate into a retrieval from the relevant database table.