programaciin rferncias

Páginas: 8 (1895 palabras) Publicado: 26 de octubre de 2014
Referencias de memoria.Además de los punteros heredados de C el lenguaje C++ añadió una nueva característica que son las referencias, Una referencia es un nuevo tipo de datos que nos va a permitir utilizar las características de los punteros pero tratándolos como variables ordinarias. es por así decirlo un alias o etiqueta de una variable.
Las referencias se deben inicializar al declararse yaque no son en sí una variable sino una etiqueta de otra y se declaran poniendo el operador & después del tipo de dato.
.
La inicialización de una referencia es simple, sólo tendremos que asociar una referencia a una variable que ya esté creada. Una vez realizado la inicialización, la referencia va a estar continuamente asociada con la variable correspondiente. Si quisiéramos hacer que lareferencia fuese el "alias" de otra variable o referenciar a otra variable no podríamos, ocurre un error de compilación, solo podrá realizarse en el momento de su declaración.
La declaración de una referencia:
Tipo_dato &nombre_referencia = variable_declarada;
Ejemplo:
// dato es una variable definida y es de tipo entero.
int dato;
// referenciaDato es la referencia creada de dato.
int&referenciaDato = dato;
Como se observa para crear una referencia no necesitamos más que la variable a la que queremos referenciar, que en el ejemplo es dato, junto la referencia en sí, que se va a definir con el símbolo &. De este modo, referenciaDato es la referencia o alias de la variable dato.
Una vez realizada, cualquier cambio que hagamos sobre dato se verá reflejado enreferenciaDato y viceversa, es decir, si realizamos una modificación en referenciaDato, esta también se va a ver reflejada en la variable dato.
Ejemplo:
#include <iostream.h>
void main()
{
int dato = 50;
int& refDato = dato;
cout << "La variable dato vale " << dato << ’\n’;
cout << "La variable refDato vale " << refDato <<’\n’;
// multiplicamos la variable dato por 2, ahora dato = 100
dato *= 2;
cout << "La variable dato vale " << dato << ’/n’;
cout << "La variable refDato vale " << refDato << ’\n’;
// incrementamos el valor de refDato = 101;
refDato ++;
cout << "La variable dato vale " << dato << ’\n’;cout << "La variable refDato vale " << refDato;
}
Si se observa los resultados en la salida, tenemos que:
La variable dato vale 50
La variable refDato vale 50
La variable dato vale 100
La variable refDato vale 100
La variable dato vale 101
La variable refDato vale 101
Los cambios efectuados en dato y refDato se ven involucrados. Debido a que dato y refDato comparten lamisma dirección de memoria y por eso, cualquier cambio que efectuemos sobre dato afectará a refDato y viceversa. (Figura 6.1)

Figura 6. SEQ Figura_6. \* ARABIC 1. Referencia de memoria.Para comprobar que las direcciones de dato y refDato son las misma, realizamos:
void main()
{
int dato = 50;
int& refDato = dato;
cout << "La dirección de la variable dato es "<< &dato << endl;
cout << "La dirección de la referencia refDato es " << &refDato;
}
Paso por valor o por referencia
Una de las cosas más útiles de los punteros es el paso por referencia en lugar del paso por valor. Vamos a explicar como funciona esto en C/C++.
Ámbito de variables
Lo primero es entender bien lo que es el ámbito de las variables, unavariable solo existe en la función en la que se crea y nada más, a través de los parámetros podemos pasar el valor de una determinada variable a otra función, pero lo que pasamos es el valor y no la variable en sí. Veamos un ejemplo.
#include <iostream>
void sumar(int);
int main()
{
int n = 4;
sumar(n);
std::cout << n << std::endl;
system("pause");
return 0;
}
void...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programaciín lineal

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS