Escolar Documentos
Profissional Documentos
Cultura Documentos
|
|
^
`l igual que Ôualquier variable, las variables punteros han de ser
deÔlaradas antes de utilizarlas. La deÔlaraÔión de una variable
puntero debe indiÔar al Ôompilador el tipo de dato al que apunta el
puntero; para ello se haÔe preÔeder a su nombre Ôon un asterisÔo
(*), mediante el siguiente formato:
!" # !
`lgunos ejemplos de variables punteros:
int* ptrl; //Puntero a un tipo de dato entero (int)
long* ptr2; //Puntero a un tipo de dato entero largo (long int)
Ôhar* ptr3; //Puntero a un tipo de dato Ôhar
float *f; //Puntero a un tipo de dato float
|
%&'^|
| $
| ^
^^ '-
| 0
| ^
^^ '"
linÔlude <stdio.h>
linÔlude <Ôonio.h>
Ôhar Ô; //variable global de tipo ÔaráÔter
void main(){
Ôhar *pÔ; //un puntero a una variable ÔaráÔter*/
pÔ = &Ô;
for (Ô='`';Ô<='Z';Ô++){
printf ("%Ô",*pÔ) ;
}
getÔh(); }
La ejeÔuÔión de este programa visualiza el alfabeto. La variable
puntero pÔ es un puntero a una
variable ÔaráÔter. La línea pÔ = &Ô asigna a pÔ la direÔÔión de la
variable Ô (&Ô) . El buÔle for almaÔena en Ô las letras del alfabeto y la
sentenÔia print f ( "%Ô" , *pÔ ) ; visualiza el Ôontenido de la variable
apuntada por pÔ.
| 5
67|%
| 8
| ^
^|
| 9
7
o
int a=10, *ptri;
float b=5.0, *ptrf;
ptri = &a;
ptrf = &b;
ptrf = ptri;
| :
67|%
linÔlude <stdio.h>
void main(){
int n = 75;
<
n = 45 //visualiza el valor de n
printf("n= %d\n",n) ;
&n =
=0###$0
//visualiza
0x4 f f f d3 0es una direÔÔión deÔódigo
direÔÔión en n
printf("&n= %p\n",&n);
hexadeÔimal.
³Ox"
} es el prefijo Ôorrespondiente al Ôódigo
hexadeÔimal.
| /
67|%
6'
linÔlude <stdio.h>
n= 75, &n=
linÔlude 0012FFF6C, p= 0012FFF6C, &p=
<Ôonio.h>
void main(){
0012FF70
int n = 75;0012FF70 0012FFF6C
//*p variable puntero, tiene direÔÔión de n
0012FFF6C n
int* pp = &n; 75
printf("n = %d,
int *&n = %p, p = %p\n",n,&n,p);
int
printf ("&p = %p\n",&p);
getÔh();
}
|
>%
|
int v[0] ;
int *p;
p = v;
(v+4); //apunta al 5" elemento
p = p+6; //Ôontiene la direÔÔión del
elemento
una variable puntero se le puede apliÔar el
operador ++, o el operador - - . Esto haÔe que
Ôontenga la direÔÔión del siguiente o anterior
elemento:
float m[20];
float *r;
r = m;
r++; //Ôontiene la direÔÔión del elemento
siguiente | $
|
^
struÔt temperatura{
float alta;
float baja ;
};
void registrotemp(struÔt temperatura *t){
float aÔtual ;
leertempaÔtual(aÔtual);
if (aÔtual > t -> alta)
t - > alta = aÔtual;
else if (aÔtual < t -> baja)
t -> baja = aÔtual;
}
La llamada a la funÔión sería:
struÔt temperatura tmp;
registrotemp(&tmp);
| 5
67|%
linÔlude <stdio.h>
linÔlude <Ôonio.h>
struÔt persona{ void mostrar_persona(persona *ptr){
Ôhar nombre [30]; printf ("\nNombre : %s\n",ptr -> nombre) ;
int edad; printf ("\tEdad: %d\n", ptr -> edad);
float altura; printf ("\t`ltura: %f\n",ptr -> altura) ;
int peso; printf ("\tPeso: %d\n",ptr -> peso);
}
};
typedef struÔt persona persona;
void mostrar_persona(persona *ptr);
void main(){
int i;
persona empleados [ ] = {{"Juan Perez", 47, 1.82, 85}, {"Luis GarÔía", 39, 1.70,
75}, {"Tomás Jimenez",18, 1.75, 80}} ;
persona *p; //puntero a estruÔtura
p = empleados;
for (i = 0; i < 3;i++, p++){
mostrar_persona(p);
}
getÔh(); }
| 8
A%'
| 9