Diferencia entre las referencias y punteros en C ++ lenguaje de programación

Aprender: Referencias y punteros en C ++, ¿cuáles son las diferencias entre una variable puntero o una variable de referencia en C ++ Programming Language , ¿qué debemos utilizar?

Hay pocos puestos relacionados con las referencias se basan punteros, Yo recomiendo leer primero ( usted no ha leído ), estos son:

  • Las variables de referencia
  • Ventajas de referencia variable sobre variable de puntero en C ++.
  • Datos acerca de las variables de referencia en C ++.

En este post, voy a discutir acerca de las diferencias entre referencias y punteros ( variables de referencia y variables de puntero ).

Dado que, una referencia y un puntero ambos son casi iguales, pero tienen algunas diferencias también, las diferencias son:

1) Una referencia es un puntero const . Por lo tanto referencia se inicializa que no puede ser hecho para hacer referencia a otra variable, mientras que el puntero se puede modificar en tiempo de ejecución.

2) Con los punteros, puntero a puntero es posible pero la referencia a referencia no es el sentido completo . Cuando tratamos de asignar una referencia a una referencia de las nuevas aperturas de referencia se refieren a la misma variable la primera referencia se refiere.

3) While el uso de punteros, tenemos que eliminar la referencia explícita usando el puntero “valor en la dirección” operador (*) , pero con la referencia no existe tal necesidad de eliminar la referencia, porque referencia obtiene automáticamente de-referenciado .

referencia a la demostración de referencia en C ++

#include <iostream>
using namespace std;
int main()
{
int a=100;
int &b=a;
int &c=b; //reference to reference
cout<<"b: "<<b<<",c: "<<c<<endl;
return 0;
}

salida

b: 100,c: 100

En ejemplo anterior, c es referencia a referencia b y ambos b y c referencia a la variable un ;

puntero a la demostración de puntero en C ++

#include <iostream>
using namespace std;
int main()
{
int a=100;
int *pa = &a;
int **ppa = &pa;
cout<<"pa: "<<pa<<", ppa: "<<ppa<<endl;
return 0;
}

salida

pa: 0x7fff27d716e4, ppa: 0x7fff27d716d8

En este ejemplo, pa está apuntando a la dirección de un y ppa está apuntando a la dirección de pa .

Leer más: puntero a puntero (Double Punteros en C)

ventaja de las referencias más punteros

While el uso de punteros tenemos que explícitamente de referencia el puntero usando ‘valor en la dirección’ operador (*). While utilizando referencia que no tiene que utilizar cualquier operador ya que se hace referencia de forma automática documento DE-A de referencia.
Leer en detalles: Ventajas de las referencias más punteros.

ventaja de más de punteros referencias

haciéndose referencia un puntero const no puede ser reasignado punteros while pueden ser reasignados.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *