>アドレスのアドレスはアドレスなワケで
全然違う。それに今はなしているのはポインタの話だ。
char *a; int *b; double *c; int **d;
とかあってこれらのポインタとしての値(値は事実上アドレスといってもいい)が等しくても
*で逆参照したときはそれぞれの型に従ってその変数の値が取り出させる。

ポインタがあることでビットオーダー、バイトオーダーとかその変数がどれだけのメモリを
割り当てられているのかなどプログラマが管理しなくてすむようになっている。

もう一度強調する。ポインタはアドレスではない。
実装の仕方は規定には無いので嘘にナル可能性もあるが事実上は
「アドレスと型情報の2つ併せて」ポインタ

>それについて詳しく載っているサイトや本はありますか?
この板でもよくあがる前橋和弥「C言語ポインタ完全制覇」がいい。語り口に癖があるので
嫌いな人はだめかもしれないけど。Hpもあるんだけどそこ読んで口調が嫌いじゃなければ
読んでみる価値がある。

ttp://member.nifty.ne.jp/maebashi/programmer/pointer.html