Apuntador o puntero
Los punteros en C tienen la fama en el mundo de la programación de dificultad , tanto en el aprendizaje como en su uso. El puntero no es más que una herramienta muy potente que puede utilizar en sus programas para hacerlos mas eficientes y flexibles.Una variables puntero es una variable que contiene direcciones de otras variables.
Direcciones de Memoria
Cuando una variable se declara se asocian tres atributos fundamentales con la misma; nombre , tipo y su dirección en memoria.
Para tener un ejemplo más claro de un apuntador nos podriamos imaginar una caja , la cual representaria la posicion de memoria Esta caja tendria el nombre de la variable , el tipo y si se conoce el valor , el cual estaria adentro de esta caja.
Es necesario recordar que para imprimir el valor de una variable se debe realizar de la siguiente manera:
printf("%d",n);
Pero algo muy importante que si se trata de acceder a una dirección de memoria se debe anteponer al nombre de la variable el operador ampersan & de esta forma:
printf("%d",&n);
Concepto de apuntador
Cada vez que se declra una variable C el compilador establece un area de memoria para almacenar el contenido de la variable . Cuando se declara una variable int(entera) por ejemplo , el compilados asigna dos bytes de memoria. Cuando se referencia el valor de la variable , el compilador de C accede automáticamente a la direccion de memoria utilizando un puntero.
Los punteros se rigen por estas relas básicas:
un puntero es una variable como cualquier otra.
una variable puntero contiene una direccion que apunta a otra posición de memoria.
en esa posición se almacena los datos a los que apunta el puntero.
un puntero apunta a una variable de memoria.
Declaración de apuntadores
En el lenguaje se al igual que una variable , se debe declarar el puntero antes de ser utilizado. El puntero se declara de la siguiente forma:
<tipo de dato> * identificador
Siempre que aparezca el * es una variable apuntador.
Inicialización de punteros
La inicialización de un puntero cuando se declaran y es preciso inicializarlos antes de su uso .Despues de la inicialización se puede utilizar el puntero para referenciar los datos direccionados . Para asignar una dirección de memoria a un puntero se utiliza el operador de referencia & .Así por ejemplo ,
&valor
significa la dirección del valor . Por eso el metodo de inicialización tambien denominado estatico requiere
- Asignar memoria estaticamente definiendo a la variable y a continuación hacer que el puntero apunte al valor de la variable .
int i;
int *p;
p=&i;
- Asignar el valor de la direccion
*p=40;
Cuando ya se ha definido un puntero , el asterisco delante de la variable puntero indica <el contenido de > de la memoria apuntada por el puntero y será del tipo dado.
Ejemplo en C
#include <stdio.h>
int main()
{
int n=75;
int *p=&n;
printf("%d,&n =",n,&n,p);
printf(&p- &p\n",&p);
}
La variable se denomina puntero debido a que su valor apunta a la posición de otro valor. Es un puntero int cuando el valor al que apunta es de tipo int en el ejemplo anterior
Ejemplo de apuntadores en c++
#include<iostream>
using namespace std;
int main(){
const int tamano=5;
int *g_ptr;
int i,calif[tamano]={34,56,78,90,99};
g_ptr=&calif[0];
for(i=0;i<tamano;i++){
cout<<"\nElemento "<<i+1<<"es"<<*(g_ptr+i)<<endl;
system("PAUSE");
}
}
Comentarios
Publicar un comentario
Hola que tal,dime tu opinión