13
PUNTEROS Ó (apuntadores) EN LENGUAJE C

PUNTEROS Ó (apuntadores) EN LENGUAJE C

Embed Size (px)

DESCRIPTION

PUNTEROS Ó (apuntadores) EN LENGUAJE C. ¿QUÉ ES UN PUNTERO?. Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido de esa dirección de memoria. - PowerPoint PPT Presentation

Citation preview

Page 1: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

PUNTEROS Ó (apuntadores)

EN LENGUAJE C

Page 2: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

¿QUÉ ES UN PUNTERO?

• Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

• No hay que confundir una dirección de memoria con el contenido de esa dirección de memoria.

Page 3: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

DIRECCIONES DE MEMORIA

• Cuando una variable se declara se asocian 3 atributos.

• int n; /* asocia al nombre n, el tipo int y la dirección de alguna posición de la memoria donde se almacena el valor de n */

0x4fffd34 printf(“%d”, n);n printf(“%d”, &n);

int75

Page 4: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

EL CONCEPTO DE PUNTERO• Tiene correspondencia con la vida diaria.• Cuando se envía una carta por correo su

información se entrega basada en un puntero (la dirección de esa carta).Cuando se telefonea a una persona, se utiliza un puntero (el número de teléfono que se marca)

• Un puntero en C es la dirección de una variable.

Page 5: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

REGLAS QUE RIGEN A UN PUNTERO

• Un puntero es una variable como cualquier otra;• Una variable puntero contiene un dirección que

apunta a otra posición de memoria;• En esa posición se almacenan los datos a los que

apunta el puntero;• Un puntero apunta a una variable de memoria.

Page 6: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

RELACCION ENTRE *P Y P DIRECCION N

El valor de un puntero es una dirección. La dirección depende del estado de la computadora en la cual se ejecuta el programa.

p

n 75 100

75

Direccion de memoria alta

Dirección de memoria baja

100110000999

p

101100099

n

Page 7: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

DECLARACION DE PUNTEROS

• <tipo de dato apuntado> *<identificador de puntero>

Ejemplos:int *ptr1; // puntero a un tipo de dato entero (int)

long *ptr2; // Puntero a un tipo de dato entero largo (long int)

char* ptr3; // Puntero a un tipo de dato char

float *f; // Puntero a un tipo de tado float

Page 8: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

INCIALIZACION

• Asignar memoria (estáticamente)• int i; // define una variable i.

• int *p; // define un puntero p.

• p=&i; // asigna la dirección de i a p.

• El operador & devuleve la dirección de la variable a la cual se aplica*p =50;

El asterisco delante de la variable puntero indica “el contenido de” de la memoria apuntada.

Page 9: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

ARITMÉTICA DE PUNTEROS

• -A una variable puntero se le puede asignar la dirección de cualquier objeto.

• -A una variable puntero se le puede asignar la dirección de otra variable puntero (siempre que las dos señalen el mismo objeto)

• -A un puntero se le puede inicializar con el valor NULL

• -Una variable puntero puede ser restada o comparada con otra si ambas apuntan a elementos de un mismo array.

Page 10: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

PUNTEROS A PUNTEROS

• Un puntero puede apuntar a otra variable puntero.ejemploint valor _e = 100;int *ptr1 = &valor _e;int **ptr5 = &ptr1;

valor _e = 95;*ptr1 = 105;**ptr5 = 99;

8000

8080

100

8080

8081

ptr1

8082

8083

ptr5

8000

Page 11: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

PUNTEROS COMO ARGUMENTOS DE FUNCIONES

• Con frecuencia se desea que una función calcule y devuelva más de un valor, o bien se desea que una función modifique las variables que se pasan como argumentos.

• Cuando una variable es local se puede hacer visible a otra función pasándola como argumento.

• También se pueden mezclar paso por referencia y paso por valor.

• Es posible declarar punteros a cualquier tipo de variable, estructura o arreglo.

Page 12: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

PROGRAMA EJEMPLO DE PUNTERO

• punteros.cpp• punteros.exe

Page 13: PUNTEROS  Ó (apuntadores) EN LENGUAJE C

BIBLIOGRAFIA

• Joyanes Zahonero PROGRAMACION EN C McGraw Hill, 2001• http://www.atc.uniovi.es/telematica/2ac/Practicas/Interfaz-

Win32-Sesion-1.pdf• http://dis.um.es/~lopezquesada/documentos/IES_0607/FP/

curso/UT8/UT8I.pdf