俺の理解だと int *hoge; の場合、宣言してるのはhogeという変数。
*をつけると変数の中身をアドレスにしてアクセスする。アクセス先の型はintとする。

最初に*hogeはint型だが、*を外したらアドレスになる、と覚えようとしたら混乱した。