Punteros en C ++ es una variable que contiene la dirección de otra variable en c ++. La dirección se almacena en la variable de puntero y ayuda en la implementación de la llamada por referencia.
En este artículo se cubrirán los siguientes consejos,
- Punteros
- Punteros y matrices
- Punteros nulos
- Punteros vacíos
- Operación aritmética de puntero
- Puntero a puntero
- Puntero a funciones
Comenzando con este artículo sobre punteros en C ++
Sintaxis:
tipo de datos * nombre de puntero EJEMPLO: int * ptr
- Una variable de puntero tiene un signo * antes de su nombre.
- Un puntero también se llama localizador o indicador.
Usos del puntero:
- Asignación de memoria dinámica
- En varios programas de matrices, estructura y funciones
Aquí hay un código de ejemplo:
#incluir usando el espacio de nombres std int main () {int num = 17 int * ptr ptr = & num cout<< 'Value at ptr = ' << ptr << 'n' cout << 'Value at var = ' << num << 'n' cout << 'Value at *ptr = ' << *ptr << 'n' }
Salida:
Explicación:
java cómo salir del programa
En el programa anterior, mostramos el funcionamiento básico de un puntero. Tenemos una variable entera num con valor 17. Tenemos la variable puntero ptr de tipo int. Asignamos la dirección de num al puntero ptr.
Primero imprimimos el valor de ptr, que es la dirección. A continuación, imprimimos el valor num y, al final, imprimimos el valor en la ubicación que tiene el puntero ptr.
Continuando con este artículo sobre punteros en C ++
Punteros y matrices:
Podemos considerar el primer elemento de una matriz como un puntero, ya que el nombre de la matriz contiene la dirección del primer elemento. Podemos usar un puntero de la siguiente manera.
Aquí hay un código de ejemplo:
#incluir usando el espacio de nombres std int main () {int arr [3] = {5, 10, 20} int * ptr ptr = arr cout<< 'Elements of the array are: ' cout << ptr[0] << ' ' << ptr[1] << ' ' << ptr[2] }
Salida:
Explicación:
En el programa anterior, mostramos el funcionamiento básico de un puntero con una matriz. Tenemos una matriz arr con valores 5,10,20. Tenemos la variable puntero ptr de tipo int. Asignamos la dirección de arr al puntero ptr.
clase anónima en java]
Primero imprimimos el valor de ptr [0], que es el primer elemento de la matriz. A continuación, imprimimos el segundo y tercer elemento respectivamente. Como los elementos de la matriz se almacenan consecutivamente, el puntero puede acceder a la otra ubicación de la matriz mediante incrementos.
Continuando con este artículo sobre punteros en C ++
Punteros nulos:
Existen el tipo de punteros que no tienen valor y tienen un valor nulo
Ejemplo :
int * ptr = NULL
Son muy útiles en estructuras de datos como una lista enlazada.
Continuando con este artículo sobre punteros en C ++
Punteros vacíos:
Estos son el tipo de punteros que no tienen un tipo de retorno.
Continuando con este artículo sobre punteros en C ++
Operación aritmética del puntero:
Se pueden realizar diferentes operaciones sobre punteros. A continuación, se muestran algunos tipos importantes.
- incrementado (++)
- decrementado (-)
- diferencia entre dos punteros (p1-p2)
- adición de un número entero a un puntero (+ o + =)
- resta de un número entero de un puntero (- o - =)
Aquí hay un código para hacer una demostración de algunas de estas operaciones:
#incluir usando el espacio de nombres std int main () {int arr [3] = {10, 100, 200} int * ptr ptr = arr for (int i = 0 i<3 i++) { cout << 'Value at different locations of array using *ptr = ' << *ptr << 'n' ptr++ } }
Salida:
Explicación:
Demostramos una operación aritmética simple de incremento de la variable de puntero que se muestra en el programa anterior.
Continuando con este artículo sobre punteros en C ++
tipos de funciones en sql
Puntero a puntero:
En este tipo de sistema, hay dos punteros. El primer puntero apunta al segundo puntero y el segundo puntero apunta a la variable que contiene el valor.
Aquí hay un código de ejemplo:
#incluir usando el espacio de nombres std int main () {int num int * ptr int ** pptr num = 3000 ptr = & num pptr = & ptr cout<< 'Value of num :' << num<< endl cout << 'Value available at *ptr :' << *ptr << endl cout << 'Value available at **pptr :' << **pptr << endl return 0 }Salida:
Continuando con este artículo sobre punteros en C ++
Puntero a funciones:
Esta es una forma de pasar punteros a funciones. El parámetro de función debe declararse como un tipo de puntero. Se muestra en el código a continuación,
#incluir usando el espacio de nombres std float getAverage (int * arr, int size) int main () {int balance [5] = {1432, 232, 3232, 17, 502} float avg avg = getAverage (balance, 5) cout<< 'Average value is: ' << avg << endl return 0 } float getAverage(int *arr, int size) { int i, sum = 0 double avg for (i = 0 i < size ++i) { sum += arr[i] } avg = double(sum) / size return avg }
Salida
Así es como pasamos un puntero a una función.
Por lo tanto, hemos llegado al final de este artículo sobre 'Punteros en C ++'. Si desea obtener más información, consulte el por Edureka, una empresa de aprendizaje en línea de confianza. está diseñado para capacitarlo en conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.
Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este blog y nos pondremos en contacto con usted lo antes posible.