SlideShare una empresa de Scribd logo
1 de 16
MANEJO DE PUNTEROS
Muchos de nuestros sueños parecen al principio
imposibles, luego pueden parecer improbables, y
      luego, cuando nos comprometemos
       firmemente, se vuelven inevitables.
                            Christopher Reeve
OBJETIVOS
• Manejo correcto y apropiado de punteros y
 reserva de memoria dinámica
INTRODUCCION
• Dato
INTRODUCCION
         INFORMACION




Empleado              Horas                         Datos de salida(se muestran
Juan, Perez           160
                                                           en el monitor)
Pedro, Rodriguez      155                                 Juan, Perez        $320
Luis, Pozo            120                                 Pedro, Rodriguez   $310
                                                          Luis, Pozo         $240

Valor por hora = $2
                                Procesamiento:
                                Calcular salarios
Datos de entrada(ingresados x
          teclado)
¿Cómo representar los datos?
• Los seres humanos



• La computadora:
TIPOS DE DATOS
   Los podemos distinguir
    fácilmente, están en el diario vivir:
        El Sr. Vera de 63 años tiene cedula No.
         0908815533, y paga $120 de impuestos
   Son tipos de datos simples
        Que permiten representar información
         numérica, caracteres, etc.
Y EN LA COMPUTADORA?
• Solo vienen integrados los tipos de datos básicos 1000
                                                           1001
• En la computadora
                                                           1002
   – Cada byte es un casillero y tiene una dirección en memoria
                                                           1003
• Los datos (números y letras) se almacena en estos
  casilleros
• ¿Cuantas casilleros ocupa un dato?
    – Depende de su tipo y del hardware de la computadora
    – Un entero puede ocupar casillas de hasta 4 bytes
    – Un doble siempre ocupara mas, por su mayor precisión
• PERO, un carácter SIEMPRE ocupara casillas de 1 byte
DECLARACION DE VARIABLES                              Al declarar una variable se
                                                             le asigna espacio en
                                                             memoria y una dirección
                                                             para dicho espacio

• Una declaración de variables en C incluye
   – Tipo de dato y
   – Nombre de variable(identificador)
   – Ejemplo:                                                        100
                                                                                  4 bytes,
                                                    int a;           101
        int a, b;                                                                 dir: 100
                                                                     102
        char c;                                     char c;          103
                                                                                  1 byte,
• ¿Para que se declaran variables?                                   104
                                                                                  dir: 104
   – Especifica cuanta memoria debe reservarse y
   – Como se van a interpretar dichos datos
        f = a + b
        • Es una suma de enteros, que al final se convierte a real
      Las variables
           Tienen direcciones de memoria
PUNTEROS
• Un puntero es una variable que contiene la
  dirección de memoria de otra variable.
• Los punteros permiten código más compacto y
  eficiente; utilizándolos en forma ordenada dan
  gran flexibilidad a la programación.
• El operador unario o monádico & devuelve la
  dirección de memoria de una variable.
• El operador de indirección o dereferencia *
  devuelve el ``contenido de un objeto apuntado
  por un apuntador''.
DECLARACION DE PUNTEROS
                               int *p;
• Un tipo de dato
   – El puntero solo podrá almacenar direcciones de
     memoria de variables del tipo especificado
                                                  1000
   – Se pueden definir punteros de cualquier tipo:1001        3      x
                                                  1002
           float *pf;                             1003
           char *pc;                              1004
                                                  1005
                                                          1000 pt
• Un identificador que siempre va antecedido del
  operador *        int *pt, x;            pt almacena la
                    x = 3;                 dirección de x, se dice
                    pt = &x;                que pt apunta a x
Punteros
• Importante: Cuando un apuntador es declarado apunta a algún
  lado. Se debe inicializar el apuntador antes de usarlo. Por lo que:
• Puede generar un error en tiempo de ejecución o presentar un
  comportamiento errático.
• El uso correcto será:
• main()
   {
        int *ap;
        int x;
       ap = &x;
       *ap = 100;
  }
PUNTEROS
• 1




• 2
PUNTEROS
EJERCICIO EN CLASE
int x,y;
int *p1,*p2;
                         1000                -42
                                              17
                                              22                x
x = -42;
y = 163;                 1004                163
                                              22                y
p1 = &x;
                         1008            1004
                                         1000
                                          1004
                                          1000
                                           0                    p1
p2 = &y;
*p1 = 17;                1012                1004
                                             1004
                                              0                 p2
*p2 = x+5;
*p1 = *p2;
                 Es equivalente a escribir
                          x = y;
p1 = p2;                                            Esto indica que p1
                                                     ahora apunta a la
p1 = NULL;                                         misma variable que p2

p2 = NULL;           Esto es equivalente a “encerar” el
                  puntero, y decir que no apunta a ninguna
                                   variable
CONCLUSIONES
• Los punteros son tan solo variables que se usan
  para almacenar las direcciones de otras variables.
• Declaración de los punteros.
•     Char * variable;
     Int * cod;
• Como todas las variables los punteros deben ser
  declarados, antes de que se los utilice para
  almacenar una dirección.
• Se requiere también que se especifique el tipo de
  variable al que apunta
Manejo de puntero spresentacion

Más contenido relacionado

La actualidad más candente

Tipos de metodos programacion dos
Tipos de metodos  programacion dosTipos de metodos  programacion dos
Tipos de metodos programacion dosEdesTigse
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Metodo gauss y gauss jordan
Metodo gauss y gauss jordanMetodo gauss y gauss jordan
Metodo gauss y gauss jordanAndrio Mendoza
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltosJansel M
 
Sintaxis funciones c++
Sintaxis funciones c++Sintaxis funciones c++
Sintaxis funciones c++Fabiola Cortes
 
Transformada inversa de laplace
Transformada inversa de laplaceTransformada inversa de laplace
Transformada inversa de laplaceAlexis Miranda
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaCarlitos Correa Jr.
 
La integral de fourier
La integral de fourierLa integral de fourier
La integral de fourierJuan Sanango
 

La actualidad más candente (20)

Tipos de metodos programacion dos
Tipos de metodos  programacion dosTipos de metodos  programacion dos
Tipos de metodos programacion dos
 
3. Modelo Relacional
3. Modelo Relacional3. Modelo Relacional
3. Modelo Relacional
 
Ordenamiento por insercion
Ordenamiento por insercionOrdenamiento por insercion
Ordenamiento por insercion
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Practica i prolog
Practica i prologPractica i prolog
Practica i prolog
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Ejercicios serie de fourier
Ejercicios serie de fourierEjercicios serie de fourier
Ejercicios serie de fourier
 
Conceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de DatosConceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de Datos
 
Programacion practica prolog
Programacion practica prologProgramacion practica prolog
Programacion practica prolog
 
Metodo gauss y gauss jordan
Metodo gauss y gauss jordanMetodo gauss y gauss jordan
Metodo gauss y gauss jordan
 
Bases de Datos - Parte 3/10 Modelo ER
Bases de Datos - Parte 3/10 Modelo ERBases de Datos - Parte 3/10 Modelo ER
Bases de Datos - Parte 3/10 Modelo ER
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltos
 
Ejercicio 1,2,3
Ejercicio 1,2,3Ejercicio 1,2,3
Ejercicio 1,2,3
 
Sintaxis funciones c++
Sintaxis funciones c++Sintaxis funciones c++
Sintaxis funciones c++
 
Transformada inversa de laplace
Transformada inversa de laplaceTransformada inversa de laplace
Transformada inversa de laplace
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos Correa
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
Topicos avanzados de programacion
Topicos avanzados de programacionTopicos avanzados de programacion
Topicos avanzados de programacion
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
 
La integral de fourier
La integral de fourierLa integral de fourier
La integral de fourier
 

Destacado (6)

Arrays
ArraysArrays
Arrays
 
Funciones
FuncionesFunciones
Funciones
 
Sentencias de control
Sentencias de controlSentencias de control
Sentencias de control
 
Elementos
ElementosElementos
Elementos
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Estructuras en C
Estructuras en CEstructuras en C
Estructuras en C
 

Similar a Manejo de puntero spresentacion

Similar a Manejo de puntero spresentacion (20)

ED 01 tipos_datos
ED 01 tipos_datosED 01 tipos_datos
ED 01 tipos_datos
 
Curso - C. 02. C tipos y expresiones.pptx
Curso - C. 02. C tipos y expresiones.pptxCurso - C. 02. C tipos y expresiones.pptx
Curso - C. 02. C tipos y expresiones.pptx
 
Material iii parcial
Material iii parcialMaterial iii parcial
Material iii parcial
 
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
 
Introduccion al lenguaje c
Introduccion al lenguaje cIntroduccion al lenguaje c
Introduccion al lenguaje c
 
Lenguajec++
Lenguajec++Lenguajec++
Lenguajec++
 
Lenguajec++
Lenguajec++Lenguajec++
Lenguajec++
 
Introduccion al lenguaje c_EderHenriquez
Introduccion al lenguaje c_EderHenriquezIntroduccion al lenguaje c_EderHenriquez
Introduccion al lenguaje c_EderHenriquez
 
Presentacion 3
Presentacion 3Presentacion 3
Presentacion 3
 
Presentacion 4
Presentacion 4Presentacion 4
Presentacion 4
 
Tipos De Datos
Tipos De DatosTipos De Datos
Tipos De Datos
 
El lenguaje de programacion c++ prev
El lenguaje de programacion c++ prevEl lenguaje de programacion c++ prev
El lenguaje de programacion c++ prev
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
 
Los 100 fuegos
Los 100 fuegosLos 100 fuegos
Los 100 fuegos
 
LOS 100 FUEGOS
LOS 100 FUEGOSLOS 100 FUEGOS
LOS 100 FUEGOS
 
VERIFICAR CÉDULA DE IDENTIDAD
VERIFICAR CÉDULA DE IDENTIDADVERIFICAR CÉDULA DE IDENTIDAD
VERIFICAR CÉDULA DE IDENTIDAD
 
Lenguaje de programación c
Lenguaje de programación cLenguaje de programación c
Lenguaje de programación c
 
Curso c++
Curso c++Curso c++
Curso c++
 
Tema 3 punteros
Tema 3 punterosTema 3 punteros
Tema 3 punteros
 
Punteros yo
Punteros yoPunteros yo
Punteros yo
 

Último

AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxhenarfdez
 
Apunte clase teorica propiedades de la Madera.pdf
Apunte clase teorica propiedades de la Madera.pdfApunte clase teorica propiedades de la Madera.pdf
Apunte clase teorica propiedades de la Madera.pdfGonella
 
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...Agrela Elvixeo
 
Presentación de la propuesta de clase.pdf
Presentación de la propuesta de clase.pdfPresentación de la propuesta de clase.pdf
Presentación de la propuesta de clase.pdfFranciscoJavierEstra11
 
TAREA_1_GRUPO7_ADMINISTRACIÓN_DE_EMPRESA.pptx
TAREA_1_GRUPO7_ADMINISTRACIÓN_DE_EMPRESA.pptxTAREA_1_GRUPO7_ADMINISTRACIÓN_DE_EMPRESA.pptx
TAREA_1_GRUPO7_ADMINISTRACIÓN_DE_EMPRESA.pptxjosem5454881
 
Biografía de Charles Darwin presentación.pptx
Biografía de Charles Darwin presentación.pptxBiografía de Charles Darwin presentación.pptx
Biografía de Charles Darwin presentación.pptxSheila240452
 
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Lineamientos de la Escuela de la Confianza  SJA  Ccesa.pptxLineamientos de la Escuela de la Confianza  SJA  Ccesa.pptx
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptxDemetrio Ccesa Rayme
 
Programa dia de las madres para la convi
Programa dia de las madres para la conviPrograma dia de las madres para la convi
Programa dia de las madres para la convikevinmolina060703
 
FICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menores
FICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menoresFICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menores
FICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menoresSantosprez2
 
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdf
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdfDISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdf
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdfVerenice Del Rio
 
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdfEdiciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdfDemetrio Ccesa Rayme
 
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanenteDiapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanenteinmaculadatorressanc
 
Santa Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de NavarraSanta Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de NavarraJavier Andreu
 
Realitat o fake news? – Què causa el canvi climàtic? - La desertització
Realitat o fake news? – Què causa el canvi climàtic? - La desertitzacióRealitat o fake news? – Què causa el canvi climàtic? - La desertització
Realitat o fake news? – Què causa el canvi climàtic? - La desertitzacióPere Miquel Rosselló Espases
 
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdfinforme-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdfAndreaTurell
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdfDemetrio Ccesa Rayme
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxAEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxhenarfdez
 

Último (20)

Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Apunte clase teorica propiedades de la Madera.pdf
Apunte clase teorica propiedades de la Madera.pdfApunte clase teorica propiedades de la Madera.pdf
Apunte clase teorica propiedades de la Madera.pdf
 
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
 
Presentación de la propuesta de clase.pdf
Presentación de la propuesta de clase.pdfPresentación de la propuesta de clase.pdf
Presentación de la propuesta de clase.pdf
 
TAREA_1_GRUPO7_ADMINISTRACIÓN_DE_EMPRESA.pptx
TAREA_1_GRUPO7_ADMINISTRACIÓN_DE_EMPRESA.pptxTAREA_1_GRUPO7_ADMINISTRACIÓN_DE_EMPRESA.pptx
TAREA_1_GRUPO7_ADMINISTRACIÓN_DE_EMPRESA.pptx
 
Biografía de Charles Darwin presentación.pptx
Biografía de Charles Darwin presentación.pptxBiografía de Charles Darwin presentación.pptx
Biografía de Charles Darwin presentación.pptx
 
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Lineamientos de la Escuela de la Confianza  SJA  Ccesa.pptxLineamientos de la Escuela de la Confianza  SJA  Ccesa.pptx
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
 
Programa dia de las madres para la convi
Programa dia de las madres para la conviPrograma dia de las madres para la convi
Programa dia de las madres para la convi
 
FICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menores
FICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menoresFICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menores
FICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menores
 
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdf
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdfDISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdf
DISEÑO DE ESTRATEGIAS EN MOMENTOS DE INCERTIDUMBRE.pdf
 
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdfEdiciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
 
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanenteDiapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
 
Santa Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de NavarraSanta Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de Navarra
 
Motivados por la esperanza. Esperanza en Jesús
Motivados por la esperanza. Esperanza en JesúsMotivados por la esperanza. Esperanza en Jesús
Motivados por la esperanza. Esperanza en Jesús
 
Realitat o fake news? – Què causa el canvi climàtic? - La desertització
Realitat o fake news? – Què causa el canvi climàtic? - La desertitzacióRealitat o fake news? – Què causa el canvi climàtic? - La desertització
Realitat o fake news? – Què causa el canvi climàtic? - La desertització
 
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdfinforme-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxAEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
 

Manejo de puntero spresentacion

  • 1. MANEJO DE PUNTEROS Muchos de nuestros sueños parecen al principio imposibles, luego pueden parecer improbables, y luego, cuando nos comprometemos firmemente, se vuelven inevitables. Christopher Reeve
  • 2. OBJETIVOS • Manejo correcto y apropiado de punteros y reserva de memoria dinámica
  • 4. INTRODUCCION INFORMACION Empleado Horas Datos de salida(se muestran Juan, Perez 160 en el monitor) Pedro, Rodriguez 155 Juan, Perez $320 Luis, Pozo 120 Pedro, Rodriguez $310 Luis, Pozo $240 Valor por hora = $2 Procesamiento: Calcular salarios Datos de entrada(ingresados x teclado)
  • 5. ¿Cómo representar los datos? • Los seres humanos • La computadora:
  • 6. TIPOS DE DATOS  Los podemos distinguir fácilmente, están en el diario vivir:  El Sr. Vera de 63 años tiene cedula No. 0908815533, y paga $120 de impuestos  Son tipos de datos simples  Que permiten representar información numérica, caracteres, etc.
  • 7. Y EN LA COMPUTADORA? • Solo vienen integrados los tipos de datos básicos 1000 1001 • En la computadora 1002 – Cada byte es un casillero y tiene una dirección en memoria 1003 • Los datos (números y letras) se almacena en estos casilleros • ¿Cuantas casilleros ocupa un dato? – Depende de su tipo y del hardware de la computadora – Un entero puede ocupar casillas de hasta 4 bytes – Un doble siempre ocupara mas, por su mayor precisión • PERO, un carácter SIEMPRE ocupara casillas de 1 byte
  • 8. DECLARACION DE VARIABLES Al declarar una variable se le asigna espacio en memoria y una dirección para dicho espacio • Una declaración de variables en C incluye – Tipo de dato y – Nombre de variable(identificador) – Ejemplo: 100 4 bytes, int a; 101 int a, b; dir: 100 102 char c; char c; 103 1 byte, • ¿Para que se declaran variables? 104 dir: 104 – Especifica cuanta memoria debe reservarse y – Como se van a interpretar dichos datos f = a + b • Es una suma de enteros, que al final se convierte a real  Las variables  Tienen direcciones de memoria
  • 9. PUNTEROS • Un puntero es una variable que contiene la dirección de memoria de otra variable. • Los punteros permiten código más compacto y eficiente; utilizándolos en forma ordenada dan gran flexibilidad a la programación. • El operador unario o monádico & devuelve la dirección de memoria de una variable. • El operador de indirección o dereferencia * devuelve el ``contenido de un objeto apuntado por un apuntador''.
  • 10. DECLARACION DE PUNTEROS int *p; • Un tipo de dato – El puntero solo podrá almacenar direcciones de memoria de variables del tipo especificado 1000 – Se pueden definir punteros de cualquier tipo:1001 3 x 1002 float *pf; 1003 char *pc; 1004 1005 1000 pt • Un identificador que siempre va antecedido del operador * int *pt, x; pt almacena la x = 3; dirección de x, se dice pt = &x; que pt apunta a x
  • 11. Punteros • Importante: Cuando un apuntador es declarado apunta a algún lado. Se debe inicializar el apuntador antes de usarlo. Por lo que: • Puede generar un error en tiempo de ejecución o presentar un comportamiento errático. • El uso correcto será: • main() { int *ap; int x; ap = &x; *ap = 100; }
  • 14. EJERCICIO EN CLASE int x,y; int *p1,*p2; 1000 -42 17 22 x x = -42; y = 163; 1004 163 22 y p1 = &x; 1008 1004 1000 1004 1000 0 p1 p2 = &y; *p1 = 17; 1012 1004 1004 0 p2 *p2 = x+5; *p1 = *p2; Es equivalente a escribir x = y; p1 = p2; Esto indica que p1 ahora apunta a la p1 = NULL; misma variable que p2 p2 = NULL; Esto es equivalente a “encerar” el puntero, y decir que no apunta a ninguna variable
  • 15. CONCLUSIONES • Los punteros son tan solo variables que se usan para almacenar las direcciones de otras variables. • Declaración de los punteros. • Char * variable; Int * cod; • Como todas las variables los punteros deben ser declarados, antes de que se los utilice para almacenar una dirección. • Se requiere también que se especifique el tipo de variable al que apunta