Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Punteros
Punteros
1. Estructuras
Definición
Tipos
2. Punteros
Objetivos
Definición
Declaración
Operadores de punteros
Operaciones con punteros
Inicialización de punteros
Punteros a puntero
1. ESTRUCTURAS
SE DECLARA AL INICIO
• struct tperson{
Int edad;
Unsigned nivelestudios;
Float sueldo;
};
SE DECLARA AL FINAL
• typedef struct{
Int edad;
Unsigned nivelestudios;
Float sueldo;
}tpersona;
5
PUNTEROS
OBJETIVOS
Conocer que es un puntero.
Mapa de memoria
•La memoria de un computador está dividida en
segmentos pequeños (8, 16, 32 o 64 bits)
dependiendo de la arquitectura del computador.
•Cada segmento tiene una dirección que permite
acceder a éste para realizar procesos de lectura o
escritura.
7
Declaracion de Punteros
•Para declarar un puntero hay que indicar el tipo
de dato al que apunta un puntero y el nombre del
puntero.
int*puntero;
Operadores de Punteros
•Existen dos operadores de punteros que son
dirección e indirección.
10
int*m;
intcuenta=20;
m= &cuenta; //operador de dirección
11
DIRECCION DE MEMORIA
12
Operador de indirección(*)
int*m, cuenta=20,q;
m= &cuenta; //operador de dirección
q = *m;//operador de indirección
13
Operador de indirección(*)
DIRECCION DE MEMORIA
14
Comparación de punteros
Inicializacion de Punteros
•Después de declarar un puntero este tiene un valor desconocido, por eso hay que
inicializar el puntero antes de usarlo.
Ejemplo 1
inti=0;
int*p;//declara un puntero
p=&i;//asigna la dirección de i a p
Ejemplo 2
intedad=50;
int*p_edad=&edad;//declara y asigna un puntero
17
Punteros a Punteros
•La indirecciónmúltiple (puntero a puntero) permite que un
puntero apunte a otro puntero que a su vez apunta a un valor
deseado.
•Se tienen dos tipos de indirección:
DIRECCION VALOR
18
EJERCICIO EN CLASE
#include <stdio.h>
int main(){
char car='c';
char *pcar;
pcar = &car; /* La variable pcar es inicializada con
la dirección de la variable car */
printf("Son direcciones: pcar = %p y &car = %p\n", pcar, &car);
/* pcar y &car son direcciones de memoria.
El especificador de formato %p se utiliza para mostrar
una dirección de memoria en hexadecimal */
printf("Son caracteres: *pcar = %c y car = %c\n", *pcar, car);
/* *pcar y car son caracteres */
return 0;
}