Una referencia en programación es un objeto que apunta a ciertos datos pero no los almacena. Obtener un objeto por referencia se denomina desreferenciación .
Una referencia no es un puntero , sino simplemente otro nombre para un objeto. La principal diferencia entre una referencia y los punteros es que un puntero es un número entero y, por lo tanto, las operaciones con números enteros están disponibles para él, mientras que solo las operaciones de copia y eliminación de referencia están disponibles para una referencia.
En los lenguajes de programación, una referencia se puede implementar como una variable que contiene la dirección de una ubicación de memoria . Algunos lenguajes de alto nivel también tienen la capacidad de usar referencias a objetos al pasar objetos hacia y desde una subrutina.
Las referencias en C++ deben estar asociadas con algún objeto. Por lo tanto, no hay "referencias nulas" (no asociadas con ningún objeto) en C++. Desreferenciar referencias en C++ no requiere un operador especial. Por lo tanto, en C++, las referencias son una forma de pasar una dirección directamente a la pila, evitando la copia y los punteros. Al compilar, todas las referencias a un objeto y su nombre se reemplazan por un solo número de este objeto.
En el siguiente ejemplo, el parámetro x se pasa por valor y el resultado se pasa por referencia. El resultado de la función se coloca en resultado:
#incluir <iostream> utilizando el espacio de nombres estándar ; // sin esta entrada, tendríamos que agregar "std::" a cout y endl cuadrado vacío ( int x , int y resultado ) { resultado = x * x ; } int principal () { int y = 0 ; //Inicializar cuadrado ( 3 , y ); cout << "y=" << y << endl ; //y=9 devolver 0 ; }Java no tiene el concepto de un puntero, y C# rara vez usa el concepto de una referencia en su lugar. Desreferenciar referencias y tomar direcciones de objetos para asignarlas a referencias no requiere un operador especial.
Las referencias en PHP son un medio para acceder al contenido de una sola variable con diferentes nombres. No son como punteros C y no son alias de tabla de símbolos. En PHP, el nombre de una variable y su contenido son cosas diferentes, por lo que el mismo contenido puede tener nombres diferentes. La analogía más cercana son los nombres de archivos y archivos de Unix: los nombres de variables son entradas de directorio y los contenidos de las variables son archivos en sí mismos. Los enlaces en PHP son análogos a los enlaces duros (hardlinks) en los sistemas de archivos de Unix.
<?php $a = 'texto' ; $b =& $a ; imprimir $b ; $a = 5 ; imprimir $b ; texto 5Una referencia en Erlang es un tipo de datos para un identificador único, que se usa solo para realizar comparaciones y coincidencias de patrones [1] :
send_kv ( N , K , V ) -> Referencia = make_ref (), % crear referencia { servidor , N } ! { put , self ( ), Referencia , K , V }, % enviar solicitud incluyendo referencia recibir { respuesta , Referencia , ok } -> ok % respuesta a solicitud después de 5000 -> { error , timeout } % o timeout end .Tipos de datos | |
---|---|
Ininterpretable | |
Numérico | |
Texto | |
Referencia | |
Compuesto | |
resumen |
|
Otro | |
Temas relacionados |