por ejemplo, veamos esto
http://www.zator.com/Cpp/E2_2a.htmLas variables pueden ser de diferentes tipos de datos, los punteros son variables pero de tipo puntero en sí, independientemente si fueron declaradas como CHAR, INT, etc.
Con referencia a las variables de tipo puntero, es tal como te dijeron.
Algo que también está permitido es hacer typecasting de variables normales para poder usarlas como punteros. Algo que yo llamo un "pseudopuntero" pero es tan sólo el uso del typecasting.
por ejemplo:
int entero1=5;
DWORD pseudopuntero = (DWORD)&entero1;
printf("entero1 %X\n", &entero1);
printf("pseudopuntero %X\n", pseudopuntero);
printf("pseudopuntero %d\n", *(int*)pseudopuntero);
system("pause");
Nótese que para un "pseudopuntero" se requiere tener en cuenta el tipo de dato correcto para guardar una dirección de memoria, y el tipo correcto de dato para mostrar el valor de la variable.
Es algo mucho más complicado por eso se prefiere usar variables de tipo puntero directamente, las cuales son las correctas para todo esto.
Cualquier cosa se puede ver otro ejemplo
http://foro.elhacker.net/programacion_cc/pseudopunteros-t385862.0.html