1 minute read

4.2.6. Apuntadores

4.2.6. Apuntadores

Un aspecto muy importante del lenguaje C es que permite acceder directamente a direcciones de memoria. Esto se consigue utilizando un tipo de variable que se conoce como apuntador a memoria. Un apuntador es una variable que contiene una dirección de memoria.

Advertisement

Un apuntador se define indicando el tipo de dato al cual apunta y añadiendo el símbolo * ante el nombre del apuntador.

Cabe tener presente que al definir un apuntador solo se reserva espacio para almacenar una dirección de memoria; no se reserva espacio para poder almacenar un valor de un tipo determinado.

El formato general para definir un apuntador en C es el siguiente:

tipo *nombre_apuntador;

Utilizamos el operador & para obtener la dirección de memoria donde se encuentra almacenada una variable, no su contenido. Esta dirección la podemos asignar a un apuntador.

Ejemplo int *p1; // Se define un apuntador de tipo int char *p2; // Se define un apuntador de tipo char

int x=1, y; // se definen dos variables de tipo int char c='a'; // se define una variables de tipo char

p1=&x; // se asigna a p1 la dirección de la variable x p2=&c; // se asigna a p2 la dirección de la variable c y=*p1; // como p1 apunta a x, es equivalente a y = x.

Cuando trabajamos con vectores, el nombre del vector en realidad es un apuntador, una constante que contiene la dirección del primer elemento del vector.

Símbolo * en C

El símbolo * tiene múltiples funciones: definir un apuntador, acceder al contenido de una posición de memoria y también se corresponde con el operador aritmético de multiplicación.

int vector[3]={1, 2, 3}; //lo que es equivalente a hacer lo siguiente: int vector[3]; int *v; int i; v = vector; //vector i *v son apuntadores a entero. for (i=0; i<3; i++) *(v+i)=i+1; // *(v+i): indica que estamos accediendo al contenido // de la dirección 'v+i'

This article is from: