Una variable es sólo una abstracción. Es la idea de un valor con nombre que puede consultar, leer y (a veces, dependiendo de su tipo) modificar.
Donde se almacena en el hardware es solo un detalle de implementación.A menudo, se implementan almacenando datos en una cierta dirección de memoria y luego usando esa dirección cada vez que se accede a la variable, por lo que en ese sentido, a menudo es un "puntero desreferenciado automáticamente" como dices.
Pero a veces, una variable se almacena en un registro en lugar de en la memoria. Entonces no tiene una dirección, y no puede crear punteros a ella.
A veces, puede que ni siquiera exista en el código compilado. A veces, el compilador puede transformar el código para que la variable ya no sea necesaria o la variable se convierta en una única constante de tiempo de compilación.
En última instancia, las variables solo existen en el código fuente. Una vez que se ejecuta su código, las variables ya no existen. Algunas variables se convierten en ubicaciones de memoria, y algunas se eliminan por completo, o se transforman en algo que ni siquiera reconocerías como variable.
Por ejemplo, este código:
int x = 10;
y += 10;
podría compilarse mediante la representación de x e y como posiciones de memoria, y luego la adición se lleva a cabo con una instrucción tal como "añadir el valor de dirección de memoria x a la valor en la dirección de memoria y ".
Pero el compilador también podría codificar la constante 10 en la propia instrucción, generando una instrucción "sumar 10 al valor en la dirección de la memoria y". Claro, x
era una variable en el código fuente original, pero ya no es una ubicación de memoria. Está codificado directamente en la secuencia de instrucciones.
Un puntero es solo una variable cuyos contenidos son una dirección. – Cascabel
su pensamiento original se implementa como semántica de referencia en C++. Una referencia hace lo que dices. En java, todo es una referencia, excepto por los tipos de valor como int. http://en.wikipedia.org/wiki/Reference_(C%2B%2B) – gtrak