Punteros y Memoria Dinámica I
|
|
- Encarnación Figueroa Torregrosa
- hace 7 años
- Vistas:
Transcripción
1 Memoria Punteros y Memoria Dinámica I Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es! Lugar donde almacenan los datos y las instrucciones! Compuesta de un gran número de bytes! Cada byte puede almacenar un valor representado por 8 cifras binarias (bits)! A cada byte se le asigna un número de identificación! Dirección de memoria! Referencia para acceder a un byte Dirección Contenido Memoria Memoria! Qué necesita el compilador para generar el código para acceder a una variable? La dirección de memoria del byte inicial de la variable El número de bytes que componen la variable! De dónde obtiene la dirección inicial?! La dirección del byte inicial la obtiene a través del nombre de la variable! Sustituirá el nombre por la dirección inicial dentro del programa final! Y el número de bytes?! El número de bytes viene definido por el tipo de la variable (char - > 1, int -> 4, )! El compilador se encarga de reservar para dicha variable el número de bytes que indique su tipo 1
2 Punteros Punteros! Nuevo tipo básico de variables! También almacenan información pero distinta! El resto de los tipos almacenan datos relativos al cálculo del programa! Los punteros almacenan direcciones de memoria! El tamaño en bytes viene dado por el tamaño de la direcciones que utilice el computador! Actualmente 4(32bits) o 8(64 bits)! Un puntero apunta a un dato! Del cual tiene que conocer su tamaño (tipo)! Para acceder a memoria hay que conocer lo que ocupa! Cuando se define una variable hay que especificar su tipo! Definición Operadores tipo *variable; Ej int *a; OJO! Ej int *a,b;! a es un puntero a un entero, b es un entero! Operador de dirección: &! Para poder obtener la dirección de una variable! Para poder almacenar la direccion hará falta una variable puntero con el mismo tipo! No confundir con el paso por referencia (misma sintáxis)! Operador de indirección: *! Para de acceder al dato almacenado en una dirección! Realiza la función opuesta del operador &! Sólo se debe utilizar con punteros 2
3 Ejemplo Precendencia int main() { int *px,y=3; Dirección Contenido px-> 35: y -> 39:???? Gráfica px? y 3 ( ) [ ]. -> (post)!sizeof, (pre) &(dirección) *(indirección) * / % + - << >> } px=&y; /* px apunta a y */ *px=5; /* y vale 5 */ px-> 35: y -> 39: px-> 35: y -> 39: px 39 px 39 y 3 y 5 < <= > >= ==!= & ^ && = += -= *= /= %=? : Conversión de punteros Conversión de punteros! Todos los punteros son direcciones de memoria exactamente iguales unas a otras! Se puede transferir el contenido de un variable a otra con tipos base distintos! No hay conversión automática entre punteros! Dos mecanismos! Casting explícito int* a; char* b = (char *)a;! reinterpret_cast (Sólo permite casting entre punteros)! char* b = reinterpret_cast<char*>(a);! Qué sucede con esta conversión? 3
4 Ejercicio Punteros a void! Escriba un programa que:! Obtenga la dirección de memoria de la variable a (int a=3;)! La almacene en una variable ptr de tipo puntero! Muestre por pantalla el valor de ptr! Establezca en la dirección indicada en ptr el valor 5! Imprima el valor de a! Punteros cuyo tipo base es void! (void*)! Pueden ser utilizados como punteros genéricos! Será posible convertir cualquier puntero a void* sin mensaje de error por parte del compilador! Para tener una colección de punteros heterogéneos! Para poder convertir del tipo void * a cualquier otro será necesario utilizar los mecanismos anteriores.! Declarar una variable (que no sea un puntero) de tipo void no tiene sentido 13 Puntero Nulo Uso de const con punteros! Uno de los mayores problemas en la programación: punteros definidos sin valor inicial! Qué contienen?! Contedrán valores aleatorios! Resultados impredecibles! Es necesario asignar una dirección que ninguna variable pueda contener esa dirección! Para que se detecte un error en el momento en el que se vaya a utilizar! Se utiliza la dirección 0! Dos formas:! Puntero constante a una variable! No se puede modificar la dirección pero sí el valor! Se tiene que inicializar con un valor! Puntero a una variable constante! Se puede modificar la dirección pero no el valor 4
5 Uso de const con punteros int a = 3; int * const p_a = &a; // Puntero cte a una variable *p_a = 6;? p_a = NULL;? const int a = 3; cont int *p_a = &a; // Puntero a una variable cte *p_a = 6;? p_a = NULL;? Uso de const con punteros int a = 3; int * const p_a = &a; // Puntero cte a una variable *p_a = 6; // BIEN p_a = NULL; // ERROR const int a = 3; cont int *p_a = &a; // Puntero a una variable cte *p_a = 6;? p_a = NULL;? Uso de const con punteros int a = 3; int * const p_a = &a; // Puntero cte a una variable *p_a = 6; // BIEN p_a = NULL; // ERROR const int a = 3; cont int *p_a = &a; // Puntero a una variable cte *p_a = 6; // ERROR p_a = NULL; // BIEN Referencias! Concepto parecido al de puntero! Una variable de tipo referencia contiene la dirección de otra variable tipo& nombre_variable = variable_a_la_que_apunta;! Como un puntero constante! Hay que inicializar la variable con un valor! No puede cambiar el valor de la variable a la que apunta! No puede inicializarse con el valor 0 5
6 Referencias Referencias! Facilita la escritura:! Para acceder al contenido no hace falta usar el operador *! Para asignarle una dirección no hace falta usar el operador & int a = 5; int& b = a; // No hace falta poner &a b = 3; // No hace falta utilizar *, a cambiaría a 3 Ejercicio Arrays y punteros! Cree un programa que defina una variable constante entera y cree las siguientes variables que apunten a la variable entera e impriman su contenido por pantalla:! Puntero! Puntero constante! Referencia! Referencia constante?! El identificador de una variable array tiene el valor de la dirección del primer elemento.! Por lo tanto, es un puntero y puede usarse como tal int a[5]={10,20,30,40,50}; int b=*a; a b 10! El identificador de una variable array es además un puntero constante por lo que no puede ser modificado 23 6
7 Arrays y punteros Aritmética de Punteros int a[5]={10,20,30,40,50}; a int *pb,*pc; pb=a; *pb=11; pc=&a[3]; *pc=44; a a pb pb pc pc! Tratar a los punteros como variables numéricas! Se pueden realizar un número limitado de operaciones aritméticas con punteros! Un puntero puede ser incrementado o decrementado por un entero (operadores +,+=,++,-,-=,--)! Para acceder a las posiciones contiguas de la dirección original! Un puntero puede ser restado de otro! Normalmente suele ser un error si se aplica sobre variables que no sean arrays. Aritmética de Punteros Aritmética de Punteros! Si sumamos 3 a un puntero, el resultado será el valor original más 3*(tamaño del tipo en bytes)! Si se restan dos punteros de tipo_a, el resultado será el número de elementos de tipo tipo_a que hay entre ambos int a[] = {1,2,3,4}; int a[] = {1,2,3,4}; int *b = a; *(b+2) = 2;? int pos = b a;?! Si sumamos 3 a un puntero, el resultado será el valor original más 3*(tamaño del tipo en bytes)! Si se restan dos punteros de tipo_a, el resultado será el número de elementos de tipo tipo_a que hay entre ambos int a[] = {1,2,3,4}; int a[] = {1,2,3,4}; int *b = a; *(b+2) = 2; // Equivale a b[2] = 2 int pos = b a; // pos valdrá 2 7
8 Ejercicios Punteros y Clases/Structs! Escriba un programa que imprima los elementos del siguiente array int valores[] = {7,6,5,4}; Utilizando la variable (int *ptr) y modificándola por medio del operador ++ struct Fecha { ; int anyo, mes, dia; Fecha a, *ptr; ptr = &a; Cómo accedemos al atributo anyo por medio de ptr? 29 Programación en C 30 Punteros y Clases/Structs Punteros y Clases/Structs struct Fecha { int anyo, mes, dia; ; Fecha a, *ptr; ptr = &a; (*ptr).anyo = 1970; //dereferenciamos e indexamos struct Fecha { int anyo, mes, dia; ; Fecha a, *ptr; ptr = &a; (*ptr).anyo = 1970; //dereferenciamos e indexamos ptr->anyo = 1970; // o utilizamos el operador flecha (->) Programación en C 31 Programación en C 32 8
9 Arrays de punteros Arrays de punteros! Un array puede contener punteros char* nombres[] = { Juan, Pepe, Maria };! El uso más común es para tener almacenados un conjunto de arrays de chars! Cada elemento será un puntero al primer carácter de cada array de char! Cada array del array puede tener distinto número de elementos! Con arrays multidimensionales esto no era posible Dirección nombres[0] 10 nombres[1] 15 nombres[2] 21 Dirección 10 J u a n \0 15 P e p e \0 21 M a r i a \0 Ejercicio Arrays de punteros! Qué habría que hacer para conseguir la salida indicada? char* nombres[] = { Juan, Pepe, Maria }; // Que sentencias habria que poner para que char* nombres[] = { Juan, Pepe, Maria }; char* tmp = nombres[0]; nombres[0] = nombres[1]; nombres[1] = tmp; cout << nombres[0] << endl; // Imprima Pepe cout << nombres[1] << endl; // Imprima Juan Dirección nombres[0] 15 nombres[1] 10 nombres[2] 21 Dirección 10 J u a n \0 15 P e p e \0 21 M a r i a \0 35 9
10 Ejercicios 37 10
Laboratorio de Arquitectura de Redes. Punteros en lenguaje C
Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones
Más detallesInformática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones
Más detallesTema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
Más detallesPunteros. Programación en C 1
Punteros Programación en C 1 Índice Variables y direcciones de memoria. Punteros definición, declaración e inicialización. Punteros declaración, asignación y dereferencia. Puntero nulo, tipo void. Aritmética
Más detallesUNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.
Más detallesPunteros y Memoria Dinámica II
Repaso Punteros y Memoria Dinámica II Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es! Memoria! Qué necesita el compilador para acceder a una variable?! Punteros! Operadores &
Más detallesdirectamente indirectamente
PUNTEROS EN C PUNTEROS Permiten simular el pasaje de parámetros por referencia. Permiten crear y manipular estructuras de datos dinámicas. Su manejo es de fundamental importancia para poder programar en
Más detallesTipos de Datos Estructurados
- Unidad 3 Tipos de Datos Estructurados 1 Tipos de Datos Compuestos en C 2 Arreglos (1) Un arreglo (array) una colección homogénea de datos simples ó compuestos, que se referencian con un nombre comú,
Más detallesPunteros y aritmética de punteros. se almacena el operando
1. Introducción Punteros y aritmética de punteros Una de las características más poderosas del C, es el puntero o apuntador. Los punteros permiten simular las llamadas por referencia y crear y manipular
Más detallesTEMA 8: Gestión dinámica de memoria
TEMA 8: Gestión dinámica de memoria 8.1.-Tipo de datos puntero Hasta ahora, los tipos de datos que hemos visto (a excepción de strings y ficheros) eran estructuras de datos estáticas, es decir, estructuras
Más detallesPUNTEROS (APUNTADORES)
2010 UNAN LEON Departamento de Computación Ing. En Sistemas Sabatino Autor: Ing: Karina Esquivel Alvarado. Asignatura: Algoritmo y Estructura de Datos. PUNTEROS (APUNTADORES) TEMA 4: PUNTEROS (APUNTADORES)
Más detallesTema 13: Apuntadores en C
Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción
Más detallesProgramación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Más detallesTipos Recursivos de Datos
1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),
Más detallesApuntadores en C y C++
Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta
Más detallesPunteros. Lenguaje C ANSI
Punteros. Lenguaje C ANSI 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
Más detallesTEMA 7. ARRAYS (LISTAS Y TABLAS).
TEMA 7. ARRAYS (LISTAS Y TABLAS). En capítulos anteriores se han descrito las características de los tipos de datos básicos o simples (carácter, entero y coma flotante). Asimismo, se ha aprendido a definir
Más detallesApuntadores (Punteros)
Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable
Más detallesIntroducción a variables de tipo Puntero (Apuntadores) Contenidos. 1. Introducción a las variables puntero 2. Repaso:
Contenidos 1. Introducción a las variables untero 2. Reaso: - oerador de dirección: & - referencias 3. Declaración de variables de tio untero 4. Inicialización de variables de tio untero - El untero nulo:
Más detallesEl operador contenido ( ) permite acceder al contenido de
3. Memoria Dinámica y Punteros Objetivos: Distinguir los conceptos de memoria estática y memoria dinámica Comprender el concepto de puntero como herramienta de programación Conocer cómo se definen y cómo
Más detallesTipos de Datos Recursivos
1/1 Tipos de Datos Recursivos Josefina Sierra Santibáñez 15 de mayo de 2018 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones), sino
Más detallesPUNTEROS (Apuntadores)
PUNTEROS (Apuntadores) Unidad III INTRODUCCIÓN A PUNTEROS. CONCEPTOS BÁSICOS. DECLARACIÓN DE PUNTEROS. PUNTEROS Como una colección de posiciones de memoria consecutivas. En ella se almacenan los distintos
Más detallesFundamentos de Informática 5. Operadores, expresiones (y su aplicación)
Fundamentos de Informática 5. Operadores, expresiones (y su aplicación) Fundamentos de Informática Grado en Ingeniería Química 2 Contenidos Operadores De asignación Aritméticos De incremento Relacionales
Más detallesfunciones printf scanf
FUNCIONES EN C FUNCIONES Los módulos en C se llaman funciones. Hemos estado utilizando funciones de la biblioteca estandar stdio.h como por ejemplo printf y scanf. Comenzaremos viendo algunas funciones
Más detallesAlgoritmos y Programación I
Algoritmos y Programación I ARREGLOS Y ESTRUCTURAS EN C Arreglos Un arreglo o vector es un conjunto de datos del mismo tipo, almacenados de forma contigua (es decir uno al lado del otro) en memoria principal.
Más detallesDefinición y Conversión de datos. Agustín J. González ELO-329
Definición y Conversión de datos Agustín J. González ELO-329 1 Calificador Const El calificador const previene que un objeto sea modificado con posterioridad a su definición. El objeto calificado como
Más detallesProgramación. Test Autoevaluación Tema 6
Programación Test Autoevaluación Tema 6 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordóñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Más detallesPunteros. 1.- Paso de parámetros por referencia. Ya hablamos de ésto en funciones. 2.- Declaración de arreglos dinámicos.
1 Punteros. Dentro de la memoria de la computadora cada dato almacenado ocupa una o más celdas contiguas de memoria. El número de celdas de memoria requeridas para almacenar un dato depende de su tipo.
Más detallesInformática Ingeniería en Electrónica y Automática Industrial
V1.1 Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales
Más detallesInformática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C V1.1 Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales
Más detallesElementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Más detallesRelación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 1: Punteros Objetivos Se hará hincapié en la aritmética de punteros
Más detallesLaboratorio de Arquitectura de Redes. Datos en lenguaje C
Laboratorio de Arquitectura de Redes Datos en lenguaje C Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales Tamaño y rango de los datos
Más detallesTema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
Más detallesUna expresión es una combinación de uno o más operandos y operadores para obtener un resultado.
1.6. EXPRESIONES CONCEPTO: Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado. Los operandos pueden ser constantes, variables, otras expresiones e incluso funciones.
Más detallesUn puntero no es más que una variable estática cuyo contenido es una dirección de memoria.
Los punteros en C 1 Introducción Cómo se organiza la memoria asociada a un programa? Como una colección de posiciones de memoria consecutivas. En ellas se almacenan los distintos tipos de datos, que ocupan,
Más detallesÍndice. Estructuras de datos en Memoria Principal. Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa
Índice Estructuras de datos en Memoria Principal Vectores Matrices Cadenas de caracteres Estructuras Estructuras de datos en Memoria Externa Ficheros Tema: Estructuras de Datos 2 Estructuras Una estructura
Más detallesCurso de Java Introducción a la Programación II
Curso de Java Introducción a la Programación II Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Tipos Java 2 Decalaración de variables 3 Operadores aritméticos Índice
Más detallesInformática PRÀCTICA 3 Curs Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida.
Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida. Objetivos de la práctica: - Mostrar la sintaxis de los diferentes tipos de datos presentes en C/C++.
Más detallesAlgoritmo, Estructuras y Programación II Ing. Marglorie Colina
Unidad III Punteros Algoritmo, Estructuras y Programación II Ing. Marglorie Colina Ejemplo: Paso de Punteros a una Función Arreglos (Arrays) Unidimensionales Los Arreglos son una colección de variables
Más detallesTEMA 8. ESTRUCTURAS Y UNIONES.
TEMA 8. ESTRUCTURAS Y UNIONES. Este capítulo examina estructuras, uniones, enumeraciones y s definidos por el usuario que permite a un programador crear nuevos s de datos. La capacidad para crear nuevos
Más detallesUNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.
Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.
Más detallesProgramación 1 Grado de Ingeniería Robótica
Programación 1 Grado de Ingeniería Robótica Tema 6: Datos estructurados Índice (sesión 11/11/2015): Arrays estáticos Cadenas de caracteres Funciones de la librería string.h Punteros Declaración de punteros
Más detalles! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes
Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar
Más detallesRepaso de lenguaje C. Índice. Repaso de lenguaje C. Repaso de lenguaje C: Tipos básicos
Índice. Repaso de C: Tipos de variables. Declaración de variables Sentencias de control Funciones. Paso de argumentos a una función. Punteros, operaciones con punteros, punteros y arrays. Repaso de lenguaje
Más detallesLección 2 Introducción al lenguaje C
Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)
Más detalles* Operador de Indirección ( o de referencia ) ( o de desreferencia )
PUNTEROS INTRODUCCION Una de las características más poderosas del C, es el puntero o apuntador. Los punteros permiten simular las llamadas por referencia y crear y manipular estructuras de datos dinámicas,
Más detallesAPELLIDOS NOMBRE GRUPO CALIFICACIÓN FECHA
Hoja 1/10 Duración: una hora y media Resultados de aprendizaje que se evalúan en este examen: R2: Saber emplear las estructuras de control de flujo de programación para implementar algoritmos sencillos.
Más detallesAlgoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 2
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 2 Contenidos: 1. Punteros 2. Arrays 3. Estructuras (registros) y uniones 4. Funciones Ejercicios Algoritmos y
Más detallesProgramación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Más detallesProgramación I Teoría III.
Programación I Teoría III http://proguno.unsl.edu.ar proguno@unsl.edu.ar DATOS ESTRUCTURADOS Estructuras de Datos Hasta ahora hemos trabajado con Datos simples enteros reales Caracteres punteros Sin embargo,
Más detallesAPUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.
APUNTADORES Un apuntador 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
Más detallesPunteros. Índice. 1. Qué es un puntero y por que son importantes.
Punteros Índice 1. Qué es un puntero y por que son importantes. 2. Punteros a tipos básicos. 3. Punteros sin tipo. 4. Memoria dinámica. 5. Punteros a estructuras. 6. Punteros a matrices. 7. Punteros a
Más detallesTema 10: Arreglos estáticos en C
Tema 10: Arreglos estáticos en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido
Más detallesGESTIÓN DE MEMORIA DINÁMICA
UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación GESTIÓN DE MEMORIA DINÁMICA Tema 3 Programación II Programación II 0 Tema 3: GESTIÓN DE MEMORIA DINÁMICA Tema 3: GESTIÓN
Más detallesInformática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Operadores y expresiones en Operadores y expresiones en Expresiones numéricas y operadores Operadores aritméticos Operadores lógicos y de relación
Más detallesInformática I (2014-2) Taller Lenguaje C Prof. Sebastián Isaza Departamento de Ingeniería Electrónica Facultad de Ingeniería Universidad de Antioquia
Informática I (2014-2) Taller Lenguaje C Prof. Sebastián Isaza Departamento de Ingeniería Electrónica Facultad de Ingeniería Universidad de Antioquia Preguntas sobre teoría 1. Es C un lenguaje interpretado
Más detallesPUNTEROS EN C (APUNTADORES)
2010 UNAN LEON Departamento de Computación Ing. En Sistemas Sabatino Autor: Ing: Karina Esquivel Alvarado. Asignatura: Programación Estructurada PUNTEROS EN C (APUNTADORES) TEMA 10: PUNTEROS (APUNTADORES)
Más detallesESTRUCTURAS y UNIONES
ESTRUCTURAS y UNIONES 1 Estructura (struct) Es un tipo de dato definido por el usuario Permiten la construción de tipos complejos a partir de otros tipos Puede considerarse como una colección de una o
Más detallesFunciones Definición de función
Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas
Más detallesTEMA 02 TIPOS, OPERADORES Y EXPRESIONES
TEMA 02 TIPOS, OPERADORES Y EXPRESIONES 2.1.- Introducción. 2.2.- Datos. 2.3.- Entrada y salida básica. 2.4.- Modificadores. 2.5.- Cadenas de caracteres. 2.6.- Operadores. 2.7.- Precedencia de operadores.
Más detallesProgramación orientada a objetos I
Introducción Programación orientada a objetos I Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es Qué es la POO? Un paradigma de programación Un paradigma es una forma de afrontar
Más detallesEstructura de Datos y de la Información. Tema 1: Gestión dinámica de la memoria. Departamento de Computación Universidade da Coruña, España.
Estructura de Datos y de la Información Tema 1: Gestión dinámica de la memoria Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detallesUniversidad del Papaloapan
Universidad del Papaloapan Materia: Programación Estructurada Tema: Punteros Expositor: M. C. Bertha López Azamar Tuxtepec, Oaxaca. Enero/2005-2006 1 PUNTEROS M. C. Bertha López Azamar Un tema muy ligado
Más detallesLenguaje C, tercer bloque: Funciones
Lenguaje C, tercer bloque: Funciones José Otero 1 Departamento de informática Universidad de Oviedo 28 de noviembre de 2007 Índice 1 Tipo puntero Concepto de puntero Operador dirección Operador indirección
Más detallesInstituto Tecnológico de Celaya
CADENAS DE CARACTERES Hasta ahora se han manejado variables de tipo caracter cuyo valor es un sólo caracter. En algunos casos, sin embargo, es necesario usar variables cuyos valores sean un conjunto (cadena)
Más detallesUnidad I Tipos de Datos en C
Tipos de Datos en C 1. El concepto de los tipos de datos. 2. Tipos de datos básicos del C. 3. Modificadores de tipo. 4. Declaración de variables. 5. Inicialización de variables. 6. Declaración de identificadores
Más detallesLaboratorio de Informática GRADO EN FÍSICA
Objetivos de la práctica: - Conocer los límites de representación de los tipos de datos simples. - Realizar programas de cálculo sencillo utilizando operadores aritméticos - Utilizar funciones básicas
Más detallesUnidad IV Arreglos y estructuras. M.C. Juan Carlos Olivares Rojas
Unidad IV Arreglos y estructuras M.C. Juan Carlos Olivares Rojas 4.1 Concepto de arreglo Agenda 4.2 Manejo de cadenas 4.3 Concepto de estructuras 4.4 Concepto de unión 4.5 Empleo de apuntadores 4.1 Concepto
Más detallesTEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero
TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando
Más detallesLaboratorio de Arquitectura de Redes. Operadores y expresiones en lenguaje C
Laboratorio de Arquitectura de Redes Operadores y expresiones en lenguaje C Operadores y expresiones en lenguaje C Expresiones numéricas y operadores Operadores aritméticos Operadores lógicos y de relación
Más detallesPara crear un arreglo de cualquier tipo de elementos la sintaxis es:
Arreglos (arrays) Un arreglo es una estructura de datos homogénea o conjunto de elementos del mismo tipo. En Java se pueden manejar arreglos de elementos de tipo primitivo (8 tipos primitivos hay en Java)
Más detallesTema 14: Arreglos estáticos en C
Tema 14: Arreglos estáticos en C Solicitado: Ejercicios 05: Ejercicios con arreglos estáticos unidimensionales M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom
Más detallesCurso de Programación en C. Licenciatura, FCQeI. APUNTADORES.
APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación
Más detalles6. Archivos. Programación II, FCFM, BUAP
6. Archivos Programación II, FCFM, BUAP Definición Un archivo o fichero desde el punto de vista informático es una colección de información almacenada en memoria secundaria (un medio externo) y no en memoria
Más detallesUNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.
Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.
Más detallesMemoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez
Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez 1. PUNTEROS 2. MEMORIA DINÁMICA 2 1. PUNTEROS 3 Qué es un puntero? Un tipo de variable cuyo valor es la dirección de memoria de otra variable.
Más detallesESTRUCTURA DE DATOS. Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo
ESTRUCTURA DE DATOS Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo DATOS ESTÁTICOS Su tamaño y forma es constante durante la ejecución
Más detallesExpresiones, variables y tipos. Funciones y paso de. Facultad de Ingeniería. Universidad del Valle
, y. y paso de. carlos.andres.delgado@correounivalle.edu.co Facultad de Ingeniería. Universidad del Valle Agosto de 2016 Contenido 1 2 3 4 5 Los lenguajes de, cuentan con expresiones para facilitar el
Más detallesProgramación 1 Tema 15. Trabajo con ficheros binarios
Programación 1 Tema 15 Trabajo con ficheros binarios Índice Ficheros binarios Diferencia con ficheros de texto Herramientas de C++ para trabajar con ficheros binarios Problemas básicos con ficheros binarios
Más detallesProgramación orientada a objetos II
Repaso de conceptos Programación orientada a objetos II Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es! Clase! Objeto! Atributos! Métodos! Cambio de enfoque! Constructor! Creación
Más detallesDatos Elementales y formato de un programa en Java
Datos Elementales y formato de un programa en Java PROGRAMACION I Grado en Matematicas Informática Programación I - 2015/2016 Datos, variables y mi primer programa 1 Introducción a la programación o Programa:
Más detallesAnalista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior PUNTEROS
PUNTEROS 1 Punteros en C Un puntero es una variable que almacena direcciones de memoria tipo *puntero; tipo variable; puntero = &variable; ffd0 valor variable fff0 ffd0 puntero A partir de la última sentencia
Más detallesHoja de ejercicios resueltos Tema 1
Hoja de ejercicios resueltos Tema 1 Operadores Ejercicio 1.- Descubrir errores void main(void) int i = 0; while(i
Más detallesTema 2: Desarrollo de Algoritmos. E.E. de Algorítmica
Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de
Más detallesINTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
Más detallesTEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:
Más detallesManejo de memoria en C
Manejo de memoria en C Todas las variables, en el lenguaje C, se definen dentro de alguna función, fuera de esa función no es posible acceder a ellas. Al entrar a una función, a cada una de las variables
Más detallesUNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.
Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.
Más detallesHoja de ejercicios del Tema 9
Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 9 1. Sin ejecutarlo, qué mostraría el siguiente código? int x = 5, y = 12, z;
Más detallesEjercicio 1. Ejercicio 2
Todos los ejercicios incluyen una parte opcional de mayor dificultad, indicada con una serie de asteriscos en función del grado de dificultad. Ejercicio 1 Este ejercicio servirá para practicar la declaración
Más detallesPunteros y Arreglos dinámicos Septiembre de Facultad de Ingeniería. Universidad del Valle
y carlos.andres.delgado@correounivalle.edu.co Facultad de Ingeniería. Universidad del Valle Septiembre de 2016 Contenido 1 2 3 Son un tipo especial de variable que almacena dirección de una variable o
Más detallesProgramación 1 Tema 15. Trabajo con ficheros binarios
Programación 1 Tema 15 Trabajo con ficheros binarios Índice Ficheros binarios Diferencia con ficheros de texto Herramientas de C++ para trabajar con ficheros binarios Problemas básicos con ficheros binarios
Más detalles