La aritmética de punteros es especialmente útil al trabajar con arreglos, ya que permite acceder a diferentes elementos y realizar operaciones de forma eficiente. Sin embargo, es esencial tener cuidado para evitar acceder a áreas de memoria no válidas.
Operaciones de punteros: Las operaciones básicas que puedes realizar con punteros son:
- Asignación de direcciones: Asignar la dirección de una variable a un puntero.
- Dereferenciación: Acceder al valor almacenado en la dirección a la que apunta un puntero.
- Comparación: Comparar punteros para determinar si apuntan a la misma dirección de memoria.
- Operaciones de incremento y decremento: Incrementar o decrementar un puntero para que apunte a la siguiente o anterior posición de memoria, respectivamente.
Aritmética de punteros: En C++, puedes realizar operaciones aritméticas con punteros. La aritmética de punteros permite avanzar o retroceder a través de la memoria por pasos proporcionados por el tipo de datos al que apunta el puntero.
#include <iostream>
using namespace std;
int main() {
int valores[] = {10, 20, 30, 40, 50};
int* puntero = valores; // Asignación de dirección de memoria del primer elemento del arreglo
cout << "Valores: ";
for (int i = 0; i < 5; ++i) {
cout << *puntero << " "; // Acceso al valor a través del puntero
puntero++; // Avanzar al siguiente elemento
}
cout << endl;
puntero = &valores[4]; // Reiniciar el puntero al último elemento del arreglo
cout << "Valores (al revés): ";
for (int i = 0; i < 5; ++i) {
cout << *puntero << " ";
puntero--; // Retroceder al elemento anterior
}
cout << endl;
return 0;
}
Salida:
Valores: 10 20 30 40 50
Valores (al revés): 50 40 30 20 10
En este ejemplo:
int* puntero = valores;
asigna la dirección de memoria del primer elemento del arreglovalores
al punteropuntero
.*puntero
accede al valor almacenado en la dirección apuntada porpuntero
.puntero++;
incrementa el puntero para que apunte al siguiente elemento del arreglo.puntero--;
decrementa el puntero para que apunte al elemento anterior del arreglo.
Pueder ir al artículo principal:
Códigos Sencillos hechos en C++