Está en la página 1de 13

Concepto

 Es una Variable que contiene una dirección


de memoria de un dato o de otra variable
que contiene al dato.

 Se pueden utilizar para crear y manipular


estructuras de datos, para asignar memoria
dinámicamente.
Creación de Punteros
 El puntero se declara precediendo que referencia al
puntero ,por el operador de indirección (“*”), el cual es
“puntero a". El puntero apunta a un objeto de tipo
particular. El puntero no inicializado tiene un valor
desconocido

 tipo *variable

 int *punt;
 char *nombr;
 double *x , *y ;

El espacio de memoria es el numero de bytes


necesarios para especificar una dirección, una dirección
far (dirección segmentada) necesita 32 bits
Operadores
 Se distingue dos operadores :

 Operador dirección : &


 Muestra la dirección de su operando

 Operador de indirección : *
 Toma ese operando como una dirección y
muestra su contenido
#include<iostream.h>
void main ()
{
int a=0;
//DECLARAMOS PUNTEROS
int *q;

cout<<"Ingrese Dato para a : ";


cin>>a;

q=&a; //ASIGNACION LA DIRECCION DE a

cout<<"En la Direccion "<<q<<" Esta "<<*q<<endl;


}
Nota
 El tipo de variable que tiene el puntero tiene que ser
igual al tipo de variable que va a apuntar a este puntero
ya que guarda memoria para ese tipo de variable.
#include<iostream.h> #include<iostream.h>
void main () void main ()
{ {
int a=0; float a=0;
//DECLARAMOS PUNTEROS //DECLARAMOS PUNTEROS
int *q; int *q;
cout<<"Ingrese Dato para a : "; cout<<"Ingrese Dato para a : ";
cin>>a; cin>>a;

q=&a; //ASIGNACION q=&a; //ASIGNACION

cout<<"En la Direccion "<<q<<" cout<<"En la Direccion "<<q<<"


Esta "<<*q<<endl; Esta "<<*q<<endl;
} }
Punteros y Arreglos

 Entre punteros y arreglos una relación


tal que cualquier operación que se
pueda realizar mediante la indexación
de un arreglo se puede realizar también
con punteros
#include<iostream.h>
void main ()
{
static int lista[]={24,30,15,45,34};
int i=0;

for(i=0;i<5;i++)
{cout<<"Elementos Predeterminado ["<<i+1<<"]: "<<lista[i+1]<<endl;}
cout<<endl;
for(i=0;i<5;i++)
{cout<<"Elementos Predeterminado como Punteros
["<<i+1<<"]:"<<*(lista+i)<<endl;;}
cout<<endl;
for(i=0;i<5;i++)
{cout<<"Posicion en Memoria de Elemento ["<<i+1<<"] : es : "<<(lista+i)<<endl;}
}
Punteros y Cadenas

 Puesto de una cadena de caracteres es


un arreglo de caracteres en código
ASCII es perfectamente aplicada la
metodología de los punteros de un
vector con la de cadena de caracteres.
#include<iostream.h>
#include<stdio.h>
void main ()
{
char cadena1[50],cadena2[50];
void copstr(char *,char *);
cout<<"Introducir Cadena:"<<endl;
gets(cadena1);
copstr(cadena2,cadena1);
cout<<"La Cadena copiada es :"<<cadena2<<endl;
}
void copstr(char *p,char *q)
{
/*int i=0;
while((p[i]=q[i])!='\0')
i++;*/
while((*p++ = *q++)!='\0');
}
Puntero en un Vector Con Procedimientos
#include<iostream.h>
void entrada();
void ubicacion();
int a[50];
int i=0,k;
int *punt;

void main()
{void entrada(void);
punt=a; //Inicializo el puntero en a
//ENTRADA GENERAL
cout<<"Ingrese N° de Elementos del Vector :";
cin>>k;
for (i=0;i<k;i++)
{cout<<"Ingrese valor ["<<i+1<<"] : ";
cin>>*(punt+i);}
void ubicacion (void);

//UBICACION EN MEMORIA
cout<<endl;

for (i=0;i<k;i++)
{
cout<<"Ubicacion en Memoria ["<<i+1<<"] : "<<(punt+i)<<endl;
}
}
Hecho por:
 Tasayco Tasayco Jhorman

 Correo:
 jhorman_12_18@hotmail.com

 Punteros Teoria Basica

También podría gustarte