1. Un operador de dirección &:
Representa
la dirección de memoria de la variable que le sigue; Operador unario que regresa
la dirección de su operando, ejemplo:
main()
{
int
y;
int
*yPtr;
y =
5;
yPtr = &y;
}
2. Un operador de indirección o de desreferencia:
*. El operador * aplicado al nombre de un apuntador indica
el valor de la variable apuntada; Regresa el valor del objeto hacia el cual su
operando apunta, es decir un apuntador, ejemplo:
main()
{
int x,y;
int *py;
int x,y;
int *py;
y = 5;
*py = y;
x = *py + 5;
printf(''%d %d nn'',*py,x);
}
*py = y;
x = *py + 5;
printf(''%d %d nn'',*py,x);
}
Se verá con un ejemplo en C la diferencia entre todos estos conceptos
Es
decir: int x = 25, *pint;
pint
= &x;
La variable pint contiene la dirección
de memoria de la variable x. La expresión: *pint representa el valor de la
variable (x) apuntada, es decir 25. La variable pint también
tiene su propia dirección: &pint
• Se pueden realizar asignaciones entre punteros.
int
a = 15;
int
*p, *q;
q =
&a;
p = q; /*
se asigna la dirección que contiene q a p */
cout<<p; /* imprime la dirección almacenad en p. */
• Se pueden operar solamente el +, el -, el ++ y el --.
Int p;
p = p + 1; p
avanza un entero.
p = p – 2; p
retrocede dos enteros.
p++; p
apunta al siguiente entero.
p--; p
apunta al entero anterior.
• Los punteros se pueden comparar.
int 2;
En el siguiente código se realiza un programa que emplea
los operadores (& y *).
#include
<iostream.h>
#include
<conio.h>
int main()
{
clrscr();
int a;
//a es un puntero
int * ap; //ap
es un apuntador a un puntero
a = 7;
ap=
& a; //ap toma la dirección de
a
cout
<<"la dirección de a es " <<&a;
cout<<" \n el Valor de ap es "
<< ap;
cout
<<"\n el valor de a es" <<a;
cout<<"\n el valor de *ap es "
<< *ap;
cout<<"\n\n\n Mostrando los valores
de * y &" ;
cout <<"\n
&* ap = " <<&*ap;
cout <<"\n *& ap = "
<< *≈
getch();
return
0;
}
No hay comentarios:
Publicar un comentario