Punteros

Anuncio
Protocolos de Comunicación
Manejo de Punteros
Preparado por: jhuircan
Octubre -2013
Objetivos
Revisión del concepto de puntero
Uso de los punteros
Consideraciones especiales
Definición
Un puntero es una variable que almacena la
dirección de un variable.
Es uno de los elementos más potente de
lenguaje de programación C
Permite el paso de
referencia a una función
parámetros
por
Definición
tipo
*identificador;
Tipo de variable al
cual “apunta”
Definición
tipo
*identificador;
El asterisco indica
que es un puntero
Definición
tipo
*identificador;
Nombre de la
variable puntero
Definición
char
*pdato;
Puntero a una variable char
Definición
int
*pdato2;
Puntero a una variable tipo int
Definición
char
*pdato, dato;
pdato= &dato;
Extrae la dirección de la variable dato
Definición
char
*pdato, dato, dato2;
pdato= &dato;
dato2= *pdato;
Extrae el contenido apuntado por dato y lo
almacena en dato2
Definición y uso
// Declaraciones de puntero
char *pdato, dato, dato4;
int *pint, x;
int main()
{
dato=0x2f;
pdato=&dato; //pdato almacena la dir de dato
dato4=*pdato; // dato4=dato;
return 1;
}
Definición y uso
0x0020
0x0021
0x2F
dato
0x0021
pdato
0x0022
0x0023
0x0024
0x0025
0x0026
0x0027
Definición
char
*pdato, dato, dato2;
pdato++;
Al incrementar el puntero se incrementa la
dirección en una
Definición
int
*pdato_int, dato2;
pdato_int++;
Al incrementar el puntero se incrementa la
dirección en dos
Uso de punteros en funciones
int
funcion(char *s2, char *s1);
Se pasa como argumento la dirección de una variable
Uso de punteros en funciones
int
funcion(char *s2, char *s1);
Si el contenido de la variable apuntada cambia dentro
de la función, entonces dicha variación se verá
reflejada en el exterior
Uso de punteros en funciones 2
char
*fun();
La fun devuelve un puntero, es decir devuelve una
dirección a una variable tipo char
Uso de punteros en funciones 2
char *fun()
{
char *p, dato;
void main()
{
char *pun, dato;
…
p=&dato;
return(p);
}
pun=fun(); // Dev dir
}
Otros contenidos de los punteros
Cuando un puntero no es capaz de recuperar la
dirección, este almacena el identificador NULL
Cuando las funciones retornan un puntero, estas
pueden retornar un NULL
Esto puede ocurrir cuando se produce un error
Descargar