Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una...
Transcript of Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una...
![Page 1: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/1.jpg)
UNIDAD 11
Apuntadores
![Page 2: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/2.jpg)
CONTENIDO
Variables de apuntador
Direcciones de memoria
El concepto de indirección
Declaración de un apuntador
El operador dirección
El operador indirección
![Page 3: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/3.jpg)
APUNTADOR
Hasta la fecha hemos declarado variables, asignándoles directamente valores.
Concepto de indirección
En lugar de asignar los valores en forma directa a las variables se puede manipular indirectamente otra variable creando otra denominada apuntador
En otras palabras, tener la dirección de memoria de una variable
![Page 4: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/4.jpg)
CONCEPTOS IMPORTANTES
1. un apuntador es una variable
Así que se le puede asignar distintos valores a una variable apuntador.
2. el valor contenido en un apuntador es una dirección que indique la ubicación de otra variable en la memoria
Por tal motivo al apuntador también se le conoce como variable de dirección.
![Page 5: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/5.jpg)
DIRECCIÓN (VALOR IZQUIERDO)
VS
CONTENIDO (VALOR DERECHO)
La memoria de la computadora contiene contiene el código binario de tus programas.
Además el código binario del sistema operativo de la máquina.
Cada ubicaión de memoria debe tener una dirección única para la PC puede leer y escribir sin confusión. (ejemplo dirección de casa)
![Page 6: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/6.jpg)
DECLARACIÓN DE VARIABLES
Al declarar una variable se le reserva memoria
La dirección asociada con el nombre del la
variable – valor izquierdo
Cuando se le asigna un valor – valor derecho,
contenido
![Page 7: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/7.jpg)
EJEMPLO
Int x;
X=7;
Valor izquierdo : 1000
Valor derecho : 7
![Page 8: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/8.jpg)
OPERADOR DE DIRECCIÓN (&)
Se utiliza para saber el valor izquierdo de la
variable
Ejemplo
long int x;
long int *y;
y=&x;
![Page 9: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/9.jpg)
PROGRAMA
Obtenga los valores izquierdos de variables
Tipo
char, int, float
Imprime la dirección (%p), contenido
Asignale valores a tus varibles y repite lo
anterior
![Page 10: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/10.jpg)
DECLARACION DE APUNTADORES
El apuntador es una variable, pero su valor
izquierdo y derecho son una dirección.
Valor izquierdo se usa para hacer referenica así
mismo .
Valor derecho que es su contenido es la
dirección de otra variable
![Page 11: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/11.jpg)
SINTAXIS
Tipo de datos *nombre
Declara diferente tipos de apuntadores
char *apuntador_c
Haz lo mismo que en el programa anterior
Imprime la dirección y contenido.
Asigna apuntador_c=&c
Imprime la dirección y contenido.
![Page 12: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/12.jpg)
EL OPERADOR DE INDIRECCIÓN (*)
*, se usa como operador unario
Se puede hacer referencia al valor de una
variable mediante la combinación del operador
* y su operando, el cual contiene la dirección
de la variable.
Ejemplo:
apuntador_c=&c
*apuntador_c –se obtiene el valor de c
![Page 13: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/13.jpg)
APUNTADORES NULOS
Es aquel cuyo valor derecho es nulo.
Ejemplo:
char *p_c;
p=0;
![Page 14: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/14.jpg)
ACTUALIZACIÓN DE VARIABLES POR MEDIO DE
APUNTADORES
En la sección anterior vimos como leer el valor
en la ubicación de memoria de la variable (*)
Ahora veremos como escribir un nuevo valor en
la ubicación de memoria de una varible
empleando un apuntador
![Page 15: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/15.jpg)
PROGRAMA
Crea apuntador y variable tipo char.
Asígnale un valor a la variable c=‘a’
Asígnale la dirección al apuntador
Despliega en plantalla
Dirección y contenido de ambas (var. y apuntador)
Ahora la apuntador asígnale *p=‘b’
Imprime en pantalla dirección y contenido
![Page 16: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/16.jpg)
COMO APUNTAR A LA MISMA UBICACIÓN DE
MEMORIA
Ejemplo
p1=&c y p2=&c
p2=p1
Escribe un programa, que muestre como
apuntar a la misma ubicación en memoria.
![Page 17: Apuntadores UNIDAD 11 - UAEH · 2011. 9. 13. · CONCEPTOS IMPORTANTES 1. un apuntador es una variable Así que se le puede asignar distintos valores a una variable apuntador. 2.](https://reader036.fdocuments.mx/reader036/viewer/2022062605/5fcf04226538971bde6137c1/html5/thumbnails/17.jpg)
PREGUNTAS
Qué son los valores derecho e izquierdo?
Cómo se puede obtener la dirección de una
variable?
Qué es el concepto de indirección en términos
de apuntadores?
Puede un apuntador nulo apuntar a datos
validos?