APUNTADORES.

Slides:



Advertisements
Presentaciones similares
Estructuras de decisión en C
Advertisements

El lenguaje C Introducción.
Listas enlazadas c++ Prof. Franklin Cedeño.
Procedimientos y Funciones
Clase 3: Punteros y Referencias
Programación I Teoría III
Direcciones, Arreglos y Argumentos de Funciones
Tipos de Datos Básicos y Estructurados
Punteros Universidad Nacional Mayor de San Marcos
ESTRUCTURAS DE DATOS.
INFORMATICA I Arreglos 1 CLASE 17.
Estructuras Compuestas.
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Ismael Camarero1. 2 ¿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.
Introducción al lenguaje C++
Estructuras de Datos Punteros y algo más.
Unidad 3 Punteros.
Herramientas para el acceso directo a memoria en 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.
Vectores en java.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.

Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
PUNTEROS Ó (apuntadores) EN LENGUAJE C
Diseño de algoritmos “Punteros”
LENGUAJE “C” Programación.
Semana 5 Subprogramas..
Introducción a los punteros
Curso Programación en Java
Capítulo 5. Punteros y Cadenas de Caracteres
Índice. Revisando conceptos acerca de la memoria.
Archivos.
Descomposición Modular. Funciones
Unidad VI Registros (estructuras, uniones y enumeraciones)
COMPUTACIÓN I TEMA 6. Pasaje de parámetros por Referencia. Uso de apuntadores Prof. Mireya Morales.
PUNTEROS Ing Anghello Quintero.
El lenguaje de programación C - Vectores y matrices -
NVA-LNG1 3. SENTENCIAS. NVA-LNG2 Asignación Es una sentencia que almacena: el valor del argumento ubicado a la derecha del símbolo que la representa En.
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
Unidad II Introducción a la programación en C++
Introducción Lenguaje de Programación ING2101 SECC Ayud. Ariel Fierro Sáez.
Informática Ingeniería en Electrónica y Automática Industrial
Programación en C para electrónicos
Punteros.
Listas Ligadas Simples. Definíción I  Es, en sencillas palabras. un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la.
Elementos básicos del lenguaje
PUNTEROS Y REFERENCIAS
ESTRUCTURAS DE DATOS 2.
Elementos básicos del lenguaje
Los punteros Programación modular.
FUNDAMENTOS DE PROGRAMACIÓN
Sesión 07: Manejo Dinámico de Memoria
Computación II Capitulo VII Punteros. Presentación de la unidad Objetivos: –Ser capaces de utilizar punteros. –Comprender las relaciones entre punteros,
Contenido:  ¿Qué son los Punteros?  Los Procedimientos: New y Dispose.
INTRODUCCION A LA PROGRAMACION
LENGUAJE “C” Programación.
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
MEMORIA DINÁMICA.
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
Gabriela Araya Baez Estudiante Ingenieria Civil Industrial.
TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;
FUNDAMENTOS DE PROGRAMACIÓN VARIABLES, CONSTANTES Y TIPOS DE DATOS EN C.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
3.6 Manejo de E/S Estructuras En la creación de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
Transcripción de la presentación:

APUNTADORES

Agenda Las variables y la Memoria Introducción a los apuntadores Direcciones de Memoria Introducción a los apuntadores Concepto de un Apuntador Apuntadores

DIRECCIONES DE MEMORIA La declaración de una variable involucra necesariamente 4 cosas: 1000 1001 1002 y 1003 1004 z 1005 1000 1001 1002 y 1003 1004 1005 1000 1001 1002 1003 1004 1005 int y; 25 int y=25; int z=77; 77 El nombre, El tipo de Datos, Su valor y … Su Dirección en memoria.

DIRECCIONES DE MEMORIA II Al valor o contenido de una variable se accede por medio de su nombre. Si quiero imprimir el valor de una variable debo utilizar simplemente su nombre: printf("%d", y); El operador & antepuesto al nombre de una variable da la dirección de memoria de la variable printf("%d", &y); //Imprime la dirección de memoria de la variable y //NO SU CONTENIDO

DIRECCIONES DE MEMORIA III #include <stdio.h> void main() { int y = 25; int z=77; int y = 25; int z=77; print f ( “y = %d\n" , y) ; / * visualiza el valor de y * / print f ( “y = %d\n" , y) ; / * visualiza el valor de y * / printf ("&y = %p\n",& y) ; / * visualiza dirección de y * / printf ("&y = %p\n",& y) ; / * visualiza dirección de y * / } 1000 1001 1002 1003 1004 1005 1000 1001 1002 y 1003 1004 z 1005 25 77 y = 25 &y = 1002 y = 25

Concepto Apuntador Características de un Apuntador: El apuntador apunta a algo. Cuando se habla de apuntadores o señaladores hablamos de dos ENTES. Cuando se señala algo habrá que tener una referencia de donde está ese algo.

APUNTADORES-Punteros-pointers INTRODUCCIÓN Los apuntadores Son una de las razones fundamentales para que el lenguaje C sea tan potente y por ende tan utilizado. En los sistemas de Cómputo los datos se manejan por medio de variables y….. La forma como una variable puede apuntar a otra variable es por medio de la dirección en memoria de la variable señalada.

APUNTADORES-Punteros-pointers INTRODUCCIÓN Las variables vistas hasta este momento contienen valores cualquiera de datos cualquiera, por el contrario las variables punteros contienen valores que son direcciones de memoria donde se almacenan otras variables. Utilizando variables punteros un programa puede realizar muchas tareas que no sería posible solo utilizando tipos de datos estándar.

El tipo de variable que almacena una dirección se denomina puntero. Concepto Apuntador Apuntadores Características de un Apuntador: Un puntero es una variable como cualquier otra… EXCEPTO QUE SOLO PUEDE ALMACENAR DIRECCIONES DE OTRAS VARIABLES COMÚN Y CORRIENTES. Un puntero APUNTA a otra variable en memoria. El tipo de variable que almacena una dirección se denomina puntero.

Concepto Apuntador Apuntadores Cuando se declara una variable en C, el compilador establece un área de memoria para almacenar el contenido de la variable. Esa variable se sitúa en una posición específica de la memoria, conocida como dirección de memoria. Se utilizan los apuntadores para optimizar el acceso a esas variables. 1000 1001 1002 y 1003 1004 z 1005 1000 1001 1002 y 1003 1004 1005 1000 1001 1002 1003 1004 1005 25 25 77 int y=25; int z=77; Un puntero en C es una Variable que SOLO guarda la dirección de memoria de otra variable.

Declaración de Apuntadores Como cualquier variable, las variables punteros han de ser declaradas antes de utilizarlas. Se utiliza asterisco (*) para indicar que la variable es variable apuntador. tipoDatoApuntado * nombreVbleApuntador; Ejemplos: int *ptr1; // Puntero a un tipo de dato entero (int) char *ptr2; / * Puntero a un tipo de dato char * / float *f; / * Puntero a un tipo de dato float * / SIEMPRE que aparezca un asterisco ( * ) en una declaración de una variable, ésta es una variable puntero.

Inicialización de Apuntadores Una variable apuntador contiene …….. LA DIRECCIÓN DE UNA VARIABLE Como se obtiene la dirección de una variable ??? Con el operador & Ejemplo: &y printf( “y = %d\n" , y); ???? 5010 5011 5012 y 5013 5014 5015 53 y = 53 printf( “&y = %d\n" , &y); ???? &y = 5012

Inicialización de Apuntadores int i; /* Define una variable i */ int *ptr; /* Define un puntero a un entero ptr*/ /* Almacene la dirección de i en ptr, como???? */ ptr = i ; MAPA DE MEMORIA ????? 5020 5021 5022 i 5023 5024 ptr …….. 5022

Indirección Apuntadores Se puede acceder al valor de una variable apuntada utilizando el nombre del apuntador. En el procedimiento del algoritmo simplemente se le antepone " * " al nombre del apuntador y se accede al valor de la variable de una forma común y corriente MAPA DE MEMORIA ????? 5020 5021 5022 i 5024 var1 ptr …. //Ejemplo void main(void) { int var1; int i=3; int *ptr; ptr = &i; var1=*ptr; var1++; *ptr=var1; }

EJEMPLO Ejemplo Programa que declare una variable tipo carácter y la inicialice con la letra O. Cree un apuntador a esta letra e imprimala utilizando el apuntador(indirección) 5020 letra 5021 5022 5023 5024 ptrLet ´O´ …… 5020

Operadores Esenciales Operadores Vistos & * Obtiene la dirección de una variable. Define una variable como puntero (DECLARACIÓN). Obtiene el contenido de una variable puntero (PROCEDIMIENTO). C requiere que las variables puntero direccionen realmente variables del mismo tipo de dato que está ligado a los punteros en sus declaraciones.

Apuntadores NULL Tipos Especiales La macro NULL es una macro que representa un valor de CERO Alguna librerías la definen: STDEF. H, STDIO.H, STDLIB.H, STRING.H La podemos definir #define NULL 0 Cuando se declara y no se inicializa un apuntador a donde está apuntando???? char *ptr; Muchas veces se hace necesario expresar explicitamente que un apuntador declarado no este apuntando a "NINGÚN" lugar (En apuntadores quiere decir que el apuntador apunta a la dirección CERO ) char *ptr = NULL;

Apuntadores VOID Tipos Especiales Se utiliza la palabra reservada VOID en la declaración de apuntadores, cuando se quiere que el puntero pueda apuntar a cualquier tipo de variables, int , char, float,…. int main(){ void *ptr; / * declara un puntero void. Puntero genérico * / char cadena; int numero; ptr=&cadena; ptr=&numero; return 0; }

PUNTEROS A PUNTEROS Un apuntador es una variable. Como toda variable tiene un espacio en memoria, tiene un nombre, tiene un valor (Dirección de otra espacio en memoria) Como un apuntador es una variable más, podemos tener otro apuntador apuntando a éste.

PUNTEROS A PUNTEROS PUNTEROS A PUNTEROS El concepto de apuntar a otro apuntador se utiliza con mucha frecuencia en programas complejos de C. Se hace uso del operador * 2 veces Ejemplo: Declaremos una variable tipo carácter, también un apuntador a esta variable. Y luego declaremos un puntero que apunte a este ultimo puntero. char letra = ´A´; char *ptr1 = &letra; char **ptr2 = &ptr1; Para acceder al contenido de letra se puede hacer por medio de: La misma variable El apuntador ptr1 El apuntador ptr2

Bibliografía Joyanes Aguilar, Luis. PROGRAMACIÓN EN C. Metodología, algoritmos y estructura de datos Capitulo10. Google

GRACIAS POR SU ATENCIÓN