¿Cuál es la diferencia entre referencia y dirección?

En la programación de computadoras, una Dirección es una ubicación de memoria normalmente dentro de la RAM, pero algunos sistemas también admiten Direcciones virtuales, donde la dirección podría referirse a una ubicación que realmente está realmente fuera de la RAM, e incluso fuera del rango de direcciones del hardware.

Una referencia es una idea más ‘flexible’, y cambia entre idiomas. En general, aunque una referencia ‘apunta’ a un objeto, en lugar de una ubicación de memoria (aunque, por supuesto, un objeto está ubicado en la memoria). Una referencia ni siquiera necesita ser una ubicación de memoria, podría ser tan fácilmente un índice en una lista de objetos.

En redes, una Dirección es una construcción de red, que describe (normalmente en términos de números) la ubicación de un dispositivo dentro de la red. Es algo similar a un número de teléfono de línea fija donde el número define una ruta a través de la red telefónica a la línea telefónica de su casa.

Los punteros están en el centro de Go efectivo. La mayoría de los programadores están aprendiendo Go con una base en uno de los idiomas mencionados anteriormente. En consecuencia, comprender la diferencia entre punteros y referencias es fundamental para comprender Go. Incluso si viene de un lenguaje que utiliza punteros, la implementación de punteros de Go difiere de C y C ++ en que conserva algunas de las propiedades agradables de las referencias mientras conserva el poder de los punteros.

Un puntero es una variable que almacena la dirección de otra variable.

Una referencia es una variable que se refiere a otra variable.

int i = 3;

int * ptr = & i;

int & ref = i;

La primera línea simplemente define una variable. El segundo define un puntero a la dirección de memoria de esa variable. El tercero define una referencia a la primera variable.

No solo los operadores son diferentes, sino que también los usas de manera diferente. Con los punteros debe usar el operador * para desreferenciarlo. Con una referencia no se requiere operador. Se entiende que tiene la intención de trabajar con la variable referida.

Una dirección es la dirección virtual de una memoria asignada. Mientras que una referencia es una entidad con nombre que almacena la dirección de una memoria asignada. La referencia se puede modificar para contener otra dirección.

En lo que respecta a mi comprensión de la informática:

Las referencias (a las direcciones) están dentro de la máquina y no se refieren a una ubicación de memoria de otra PC.

Las direcciones pueden ser direcciones IP, direcciones de memoria, direcciones Hadoop FS, depende totalmente del contexto.