- Punteros en C++: Los punteros son una representación simbólica de direcciones. Permiten que los programas simulen llamadas por referencia, así como que creen y manipulen estructuras de datos dinámicas. Su declaración general en C/C++ tiene el formato:
Sintaxis:
datatype *var_name;
-
Ejemplo:
// ptr can point to an address // which holds int data int *ptr;
-
- Más sobre los punteros en C++: este artículo brindará más información sobre los punteros, cómo funciona y explica su trasfondo matemático. Los punteros almacenan la dirección de las variables o una ubicación de memoria.
// General syntax datatype *var_name; // An example pointer "ptr" that holds // address of an integer variable or holds // address of a memory whose value(s) can // be accessed as integer values through "ptr" int *ptr;
- Aplicaciones de los Punteros en C/C++: Un puntero tiene varias aplicaciones como:
- Para pasar argumentos por referencia: Pasar por referencia tiene dos propósitos
- Para acceder a los elementos de la array: el compilador usa internamente punteros para acceder a los elementos de la array.
- Para devolver valores múltiples: por ejemplo, al devolver el cuadrado y la raíz cuadrada de números.
- Asignación dinámica de memoria: podemos usar punteros para asignar memoria dinámicamente. La ventaja de la memoria asignada dinámicamente es que no se elimina hasta que la eliminemos explícitamente.
- Implementar estructuras de datos.
- Para hacer programación a nivel de sistema donde las direcciones de memoria son útiles.
- Funciones y uso de punteros en C/C++: Los punteros comparten algunas funciones importantes, como ahorrar espacio en la memoria, se usan para asignar memoria dinámicamente, se usan para el manejo de archivos, etc. Los punteros almacenan la dirección de variables o una ubicación de memoria .
Sintaxis:
datatype *var_name;
- Ejemplo: el puntero «ptr» contiene la dirección de una variable entera o contiene la dirección de la memoria a cuyos valores se puede acceder como valores enteros a través de «ptr»
int *ptr;
- Puntero ‘this’ en C++ El puntero ‘this’ se pasa como un argumento oculto a todas las llamadas a funciones miembro no estáticas y está disponible como una variable local dentro del cuerpo de todas las funciones no estáticas. El puntero ‘este’ no está disponible en las funciones de miembros estáticos, ya que las funciones de miembros estáticos se pueden llamar sin ningún objeto (con el nombre de la clase). Incluso si solo existe un miembro de cada función que utilizan varios objetos, el compilador proporciona un puntero implícito junto con los nombres de las funciones como ‘esto’.
Declaración:
this->x = x;
- Referencias en C++: cuando una variable se declara como referencia, se convierte en un nombre alternativo para una variable existente. Una variable se puede declarar como referencia poniendo ‘&’ en la declaración. Hay 3 formas de pasar argumentos de C++ a una función:
- llamada por valor
- llamada por referencia con un argumento de puntero
- llamada por referencia con un argumento de referencia
- Punteros frente a referencias en C++: este artículo sienta las bases adecuadas para las diferencias entre el puntero y las referencias. Tanto las referencias como los punteros se pueden usar para cambiar las variables locales de una función dentro de otra función. Ambos también se pueden usar para guardar la copia de objetos grandes cuando se pasan como argumentos a funciones o se devuelven de funciones, para obtener una ganancia de eficiencia.
A pesar de las similitudes anteriores, existen las siguientes diferencias entre referencias y punteros.- Un puntero puede declararse como void pero una referencia nunca puede ser void
Ejemplo:
- Un puntero puede declararse como void pero una referencia nunca puede ser void
int a = 10; void* aa = &a;. //it is valid void &ar = a; // it is not valid
- Las referencias son menos poderosas que los punteros.
- Una vez que se crea una referencia, no se puede hacer que haga referencia a otro objeto; no se puede volver a colocar. Esto se hace a menudo con punteros.
- Las referencias no pueden ser NULL. Los punteros a menudo se hacen NULL para indicar que no apuntan a nada válido.
- Una referencia debe inicializarse cuando se declara. No existe tal restricción con punteros.
- Pasar por puntero Vs Pasar por referencia en C++: En C++, podemos pasar parámetros a una función ya sea por punteros o por referencia. En ambos casos, obtenemos el mismo resultado. Entonces, ¿qué se debe preferir y por qué?
- Pasar referencia a un puntero en C++: En este artículo, comparemos el uso de un «puntero a puntero» VS «Referencia a puntero» en algunos casos.
Publicación traducida automáticamente
Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA