Punteros. Programación en C 1
|
|
|
- María Nieves Macías Pereyra
- hace 8 años
- Vistas:
Transcripción
1 Punteros Programación en C 1
2 Í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 y comparación de punteros. Arrays y punteros. Argumentos de main. Punteros a estructuras. Asignación dinámica de memoria. Estructuras autoreferenciadas. Programación en C 2
3 Variables y direcciones de memoria Las variables definidas hasta ahora (char, int, float) sólo almacenan valores que se modifican mediante el operador asignación. El nombre de la variable representa una posición de memoria del ordenador. Programación en C 3
4 Punteros Un puntero es un tipo de variable especial que contiene la dirección de memoria de otra variable. La utilización de punteros permite: Definir arrays de tamaño variable. Que las funciones devuelvan más de un valor. Definir estructuras de datos complejas (p.e. listas, árboles) Si una variable p contiene la dirección de otra variable q, entonces se dice que p apunta a q. Si q es una variable en la dirección 100 de la memoria, entonces p tendrá el valor 100 (dirección de q). Programación en C 4
5 Punteros ejemplo operador & /************************************************************************\ * Programa: pr_oper&.c * * Descripción: Prog. que imprime direcciones de memoria con & * * Autor: Pedro Corcuera * * Revisión: 1.0 2/02/2008 * \************************************************************************/ #include <stdio.h> int main() { char a; char b; int n; float x; printf("direccion a = %p\n", &a); printf("direccion b = %p\n", &b); printf("direccion n = %p\n", &n); printf("direccion x = %p\n", &x); } return 0; Programación en C 5
6 Punteros - declaración Las variables puntero se declaran usando el operador indirección *, llamado también operador dereferencia. Sintaxis: tipo_dato *nombre_name; Programación en C 6
7 Punteros operadores & y * El operador unario & se utiliza para obtener la dirección de memoria de cualquier variable del programa. Si x es una variable: &x es la dirección de memoria donde está almacenada la variable. El operador unario *, llamado operador indirección, permite acceder al valor por medio del puntero. Si px es un puntero (dirección): *px es el contenido del puntero (el valor almacenado en la dirección). Programación en C 7
8 Punteros declaración e inicialización Se puede declarar e inicializar un puntero en la misma línea. Ej: int x; int *p = &x; Programación en C 8
9 Punteros declaración, asignación y dereferencia int main() { int *px, y = 3; Dirección px-> 35: y -> 39: Contenido???? Gráfica px? y 3 px = &y; /* px apunta a y */ px-> 35: y -> 39: px 39 y 3 } *px = 5; /* y vale 5 */ px-> 35: y -> 39: px 39 y 5 Programación en C 9
10 int main() { Punteros declaración, asignación y dereferencia int *p, *q; int a = -123; int b; } p = &a; q = p; printf( %d %d,*p, *q); b = *p; printf( %d %d,b, a); Programación en C 10
11 Punteros declaración, asignación y dereferencia int main() { int *p, *q; int x; p = q = &x; x = 4; x = x + 3; *p = 8; *&x = *p + *q; } x = *p * *q; Programación en C 11
12 Puntero nulo - NULL No tiene sentido asignar un valor entero a una variable puntero. Una excepción es la asignación de 0, que se utiliza para indicar condiciones especiales (dirección nula de terminación). Un puntero cuyo valor es la dirección nula no apunta a nada que puede accederse. Es recomendable usar para tal caso la constante NULL definida en el cabecero stdio.h. Programación en C 12
13 Punteros - void La declaración de punteros genéricos a direcciones se asocian al tipo void. Declarar una variable (que no sea un puntero) de tipo void no tiene sentido. Ejemplo: void *px,v; /* La variable v está mal declarada */ Programación en C 13
14 Puntero a puntero Un puntero almacena la direccion de un objeto, que puede ser a su vez otro puntero. La notacion de puntero a puntero requiere de un doble asterisco (**). int a = 58; int *p = &a; int **q = &p; printf( %3d, a); printf( %3d, *p); printf( %3d, **q); Programación en C 14
15 Aritmética y comparación de punteros Las operaciones soportadas sobre punteros son: Suma y resta de valores enteros (+, -, ++ y --). sólo se puede usar enteros en las operaciones. La aritmética se realiza en relación al tipo base. Ejemplo: p++; si p está definido como int *p, p se incrementará en 4 bytes. si p está definido como double *p, p se incrementará en 8 bytes. Cuando se aplica a punteros, ++ significa poner el puntero apuntando al siguiente objeto. Comparación y relación (<, >, <=, >=, ==,!= y comparación con NULL). ( p == NULL) ( p == q) equivale a (*p == *q) Programación en C 15
16 Aritmética de Punteros Las operaciones de suma o resta sobre punteros modifican el valor del dependiendo del tipo del puntero: int* p_int; char* p_char; p_int=p_char; p_int++; /* Suma sizeof(int) */ p_char++; /* Suma sizeof(char) */ p_char p_char F0 3F1 3F2 3F3 3F4 3F5 3F6 3F7 3F8 3F9 3FA 3FB p_int ++ sizeof(int)=4 p_int + 1 Programación en C 16
17 Aritmética de Punteros Las variables de tipo puntero soportan ciertas operaciones aritméticas. char v[]= Colección ; char *p=v; v *(p+2) C o l e c c i ó n \0 for(p=v; *p; p++) { printf( %c,*p) } v[7] Programación en C 17
18 Arrays y punteros En C existe una relación estrecha entre arrays y punteros. Las variables arrays y punteros son esencialmente lo mismo en C, excepto que: Los punteros son variables, por tanto puede modificarse la posición a la que apunta. Las variables arrays son fijas o constantes, en tanto que sólo pueden apuntar a un array. Cualquier operación que puede realizarse usando índices de un array puede realizarse usando punteros. Programación en C 18
19 Arrays y punteros Programación en C 19
20 Equivalencias entre arrays y punteros /* equivalencias */ ptr = array_a; ptr = &array_a[0]; Programación en C 20
21 Equivalencias entre arrays y punteros Programación en C 21
22 Equivalencias entre arrays y punteros Una referencia a a[i] también puede escribirse como *(a+i). C convierte la indexación de un array a la notación de puntero durante la compilación. Programación en C 22
23 Equivalencias entre arrays y punteros El identificador de una variable array tiene el valor de la dirección de comienzo del mismo. Por lo tanto, su valor puede usarse como un puntero. int *pb,*pc; int a[5]={10,20,30,40,50}; pb=a; *pb=11; a a pb pb pc pc pc=&a[3]; *pc=44; a pb pc Programación en C 23
24 Punteros y arrays multidimensionales Un array bidimensional es una colección (array) de arrays unidimensionales. Se puede definir un array bidimensional como un puntero a un grupo de arrays unidimensionales, así: tipo_dato (*ptvar)[ind2]; tipo_dato array[ind1][ind2]; int (*x)[20]; int x[10][20]; Generalizando para arrays multidimensionales: tipo_dato (*ptvar)[ind2] [ind3] [ind4] [indn]; float (*t)[20][30]; float t[10][20][30]; Programación en C 24
25 Punteros y arrays multidimensionales Para acceder a un elemento individual de un array multidimensional se usa la aplicación repetida del operador indirección. Suponiendo que x es un array bidimensional de 10 filas y 20 columnas, para acceder al elemento 2, 5: x[2][5] *(*(x + 2) + 5) Generalizando para arrays multidimensionales: tipo_dato (*ptvar)[ind2] [ind3] [ind4] [indn] float (*t)[20][30]; float t[10][20][30]; Programación en C 25
26 Arrays de punteros Otra forma de expresar un array multidimensional es mediante arrays de punteros. tipo_dato *array[ind1]; tipo_dato array[ind1][ind2]; Generalizando para arrays multidimensionales: tipo_dato *array [ind1] [ind2] [ind3] [indn-1]; tipo_dato array [ind1] [ind2] [ind3] [indn]; Para acceder a un elemento individual: Si x es un array de int con 10 filas y 20 columnas. int *x[10]; x[2][5] *(x[2] + 5) Programación en C 26
27 Arrays de punteros Son muy usados para almacenar cadenas de caracteres. No se declara el tamaño de la cadena. char *palabras[ ] = { "esta, es,, una ","prueba,. \n"}; esta \0 es,\0 una \0 palabras[2][1] = n *(*(palabras+1)+2) =, prueba\0. \n\0 Programación en C 27
28 Argumentos de main La función principal main puede recibir argumentos que permiten acceder a los parámetros con los que es llamado el ejecutable. Dentro del paréntesis de main se especifican dos argumentos: int argc : Número de parámetros. char* argv[] : Parámetros del ejecutable. con lo que la definición de main queda así: int main(int argc, char* argv[]) Programación en C 28
29 Argumentos de main > cl prog.c -o prog.exe $ prog uno dos tres cuatro int main(int argc, char* argv[]) argc=5 (incluye el comando) argv[0] argv[1] argv[2] argv[3] argv[4] prog\0 uno\0 dos\0 tres\0 cuat ro\0 Programación en C 29
30 Ejemplo: imprime argumentos de main /************************************************************************\ * Programa: arg_main.c * * Descripción: Prog. que imprime el comando y los argumentos de main * * Uso: >progcomp arg1 arg2 arg3 * * Autor: Pedro Corcuera * * Revisión: 1.0 2/02/2008 * \************************************************************************/ #include <stdio.h> int main(int argc, char *argv[]) { int i=0; printf("ejecutable: %s \tnumero de argumentos: %d\n",argv[0], argc); for(i = 1; i < argc;i++) printf("argumento[%d]: %s\n",i,argv[i]); } return 0; Programación en C 30
31 Punteros a estructuras Son muy frecuentes en C. Se declaran de la misma forma que un puntero a una variable ordinaria. Ej.: struct alumno *palumno; ALUMNO *palumno; /* usando typedef */ Para acceder a un campo de la estructura: prom_nota = (*palumno).nota los paréntesis son estrictamente necesarios. Hay un operador (->) alternativo para este propósito: palumno -> nota Programación en C 31
32 Punteros a estructuras Programación en C 32
33 Punteros a estructuras Programación en C 33
34 Asignación dinámica de memoria Además de la reserva de espacio estática (cuando se declara una variable), es posible reservar memoria de forma dinámica. Hay funciones de gestión de memoria dinámica (stdlib.h): void *malloc(size_t): Reserva memoria dinámica. void *calloc(size_t): Reserva memoria dinámica. void *realloc(void *,size_t): Ajusta el espacio de memoria dinámica. free(void *): Libera memoria dinámica. Programación en C 34
35 Memoria dinámica stdlib.h Programación en C 35
36 Memoria Dinámica - uso #include <stdlib.h> int a,b[2]; int *i; char *c; i=(int *)malloc(sizeof(int)); c=(char *)malloc(sizeof(char)); free(i); c=(char *)realloc(c,sizeof(char)*9); Estática a b[0] b[1] i c a b[0] b[1] i c a b[0] b[1] i c *i *c *c Dinámica Programación en C 36
37 Memoria Dinámica uso malloc void *malloc(size_t tamaño_bloque) devuelve NULL si no hay suficiente memoria ptr = (int *)malloc(sizeof(int)); if ( ptr == NULL) /* No hay memoria */ printf ( ERROR. No hay memoria\n ); else. /* Memoria disponible */ Programación en C 37
38 Memoria Dinámica uso calloc void *calloc(size_t nelem, size_t elsize) devuelve NULL si no hay suficiente memoria ptr = (int *)calloc(200, sizeof(int)); if ( ptr == NULL) /* No hay memoria */ printf ( ERROR. No hay memoria\n ); else. /* Memoria disponible */ Programación en C 38
39 Memoria Dinámica uso free void free(void *puntero_al_bloque) Programación en C 39
40 Ejemplo: array dinámico /************************************************************************\ * Programa: array_dinamico.c * * Descripción: Prog. que crea una array dinamico y genera otro con los * * elementos pares del primer array y lo imprime * \************************************************************************/ #include <stdio.h> #include <stdlib.h> int main(void) { int dim_usu; /* dimension del vector del usuario */ int dim_par; /* dimensión del vector de elementos pares */ int n; /* indice para los for */ int m; /* indice para recorrer arrya de pares */ int *pvec_usu; /* puntero al vector introducido por el usuario */ int *pvec_par; /* puntero al vector elementos pares (dinamico) */ printf("introduzca la dimension del vector: "); scanf(" %d", &dim_usu); pvec_usu = (int *) calloc( dim_usu, sizeof(int)); /*Asignar memoria vect. usuario */ /*pvec_usu = (int *) malloc( dim_usu*sizeof(int));*/ if (pvec_usu == NULL) { /* si no hay memoria */ printf("error: no hay memoria para un vector de %d elementos\n", dim_usu); } Programación en C 40
41 Ejemplo: array dinámico } else { for (n = 0; n < dim_usu; n++) /* pedir elementos del vector */ { printf("elemento %d = ", n); scanf("%d", &(pvec_usu[n]));} dim_par = 0; for (n = 0; n < dim_usu; n++) if ((pvec_usu[n] % 2) == 0) dim_par++; pvec_par = (int *) calloc( dim_par, sizeof(int)); if (pvec_par == NULL) { /* si no hay memoria */ printf("error: no hay memoria para un vector de %d elementos\n", dim_par); } else { /* se copian los elementos pares */ m = 0; for (n = 0; n < dim_usu ; n++) if ((pvec_usu[n] % 2) == 0) { pvec_par[m] = pvec_usu[n]; m++;} printf("\n \n"); for (n = 0; n < dim_par ; n++) printf("elemento par %d = %d \n", n, pvec_par[n]); } free (pvec_par); } free (pvec_usu); Programación en C 41
42 Matriz con número de columnas diferentes - Se representa como un array de arrays (puntero a puntero) dinámico. Programación en C 42
43 Punteros a cadenas de caracteres - Utiles en recorridos de cadenas de caracteres. Programación en C 43
44 Estructuras autoreferenciadas Para construir estructuras de datos más potentes es necesario incluir dentro de una estructura un campo que sea un puntero a la misma estructura. struct alumno { char dni[10]; char nombre[100]; struct fecha fnac; float notas[10]; struct alumno *palumno; }; Programación en C 44
Tema 18: Memoria dinámica y su uso en C
Tema 18: Memoria dinámica y su uso en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1
PUNTEROS (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)
Apuntadores (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
Tema 13: Apuntadores en C
Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción
Punteros. 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
Memoria 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.
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
PUNTEROS (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
Universidad 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
PUNTEROS 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)
Algoritmo, 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
Estructura de Datos ARREGLOS
Estructura de Datos ARREGLOS ESTRUCTURAS DE INFORMACIÓN Una estructura de datos o de información es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen
ESTRUCTURA 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
Informá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
Apuntadores y Memoria dinámica. Apuntadores. M.C. Yolanda Moyao Martínez
Apuntadores y Memoria dinámica Apuntadores M.C. Yolanda Moyao Martínez Por que? Es la única forma de expresar algunos cálculos. Se genera código compacto y eficiente. Es una herramienta muy poderosa. Uso
Tema 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
Punteros. Í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
ESTRUCTURAS. Struct Identificador_ tipo_estructura { Tipo miembro_1; /*Declaración de los miembros*/
DECLARACION DE ESTRUCTURAS ESTRUCTURAS La estructura es una colección de variables, la cual puede poseer distintos tipos de datos (a diferencia de los arreglos que solamente pueden tener un solo tipo de
Repaso 02: Apuntadores y manejo de memoria dinámica
Repaso 02: Apuntadores y manejo de memoria dinámica Solicitado: Ejercicios 02: Programación con memoria dinámica M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom
Apuntadores 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
Programació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.
UNIVERSIDAD 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.
directamente 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
Estructuras Dinámicas
Departamento de Lenguajes yciencias de la Computación 4 Estructuras Dinámicas Contenido 1. Gestión dinámica de memoria. 2. El tipo puntero. 3. Operaciones con punteros. 4. Operaciones básicas sobre listas
Í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
Programación I Funciones
1 Funciones Iván Cantador 2 Funciones: definición, sintaxis, ejemplos (I) Una funciónes un bloque de sentencias identificado con un nombre que se ejecutan de manera secuencial ofreciendo una funcionalidad
Unidad 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
Programació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.
TEMA 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
Introducció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:
Algoritmos 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.
Repaso 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
1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos
1.1 Tipos de Datos Primitivos 1.2 Tipos de datos estructurados 1.2.1 Arreglos unidimensionales, bidimensionales y cadenas de caracteres 1.2.2 Registros o Estructuras (unión y estructura) 1.3 Definición
Tema 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 [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido
FUNDAMENTOS DE PROGRAMACIÓN. PRÁCTICA 11: Apuntadores
Objetivos El alumno conocerá y aplicará el concepto de apuntadores para la solución de programas en Lenguaje C Introducción Un apuntador es una variable que mantiene la dirección de memoria de un elemento
Tipo de Dato: Arreglos
Tipo de Dato: Arreglos Unidimensionales Prof. Judith Barrios Albornoz Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Semestre A_2013 Este
TEMA 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
Uso avanzado de punteros
Uso avanzado de punteros Mario Medina C. [email protected] Punteros Contienen direcciones de memoria Punteros a tipos de datos simples int, char, float, double Punteros a estructuras Punteros a vectores
TEMA 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.
Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.
Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea
* 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,
Algoritmos y estructuras de datos
Algoritmos y estructuras de datos Estructuras, apuntadores y memoria dinámica Francisco Javier Zaragoza Martínez Universidad Autónoma Metropolitana Unidad Azcapotzalco Departamento de Sistemas 11 de mayo
Estructuras y Uniones
1 Estructuras y Uniones Estructuras. Las estructuras ( struct ) son agrupaciones de una o más variables de tipos posiblemente diferentes, agrupadas bajo un mismo nombre. Esto permite un manejo más cómodo
Relació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
Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.
Fundamentos de Informática Lección 5. Arreglos (vectores) Curso 2010-2011 Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas. Índice de contenidos Arreglos: Concepto
Introducción general al Lenguaje C (2010/2011)
Luis Valencia Cabrera [email protected] (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice
Tema 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 [email protected] @edfrancom
Tipos 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ú,
Lenguaje 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
Realizar el ejercicio anterior utilizando Punteros
PUNTEROS Y ARRAYS En C existe una relación entre punteros y arrays tal que cualquier operación que se pueda realizar mediante la indexación de un arrays, se puede realizar también con punteros. Para clarificar
Definición de estructuras. Estructuras, uniones y enumeraciones. Declaración. Definición y declaración. (struct, union y enum)
Estructuras, uniones y enumeraciones (struct, union y enum) Definición de estructuras Una Estructura es una colección de variables simples (como int x; char cad[30]; etc), que pueden contener diferentes
1 Introducción a los algoritmos y a la programación de computadoras... 1
Contenido - IX Contenido 1 Introducción a los algoritmos y a la programación de computadoras... 1 1.1 Introducción... 2 1.2 Concepto de algoritmo... 2 1.2.1 Definición de algoritmo y problema... 2 1.2.2
Guía práctica de estudio 04. Almacenamiento en tiempo de ejecución
Guía práctica de estudio 04. Almacenamiento en tiempo de ejecución Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio
ARREGLOS, PUNTEROS Y ASIGNACIÓN DINÁMICA DE MEMORIA
CAPÍTULO 3 ARREGLOS, PUNTEROS Y ASIGNACIÓN DINÁMICA DE MEMORIA Un arreglo, también llamado matriz (array), es un conjunto de elementos dispuestos secuencialmente, que contienen datos del mismo tipo. El
Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y
Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y distribución. Listas Enlazadas Estructuras de datos dinámicas
Elementos 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
Punteros y Memoria Dinámica II
Repaso Punteros y Memoria Dinámica II Curso INEM. Programación en C++ Santiago Muelas Pascual [email protected]! Memoria! Qué necesita el compilador para acceder a una variable?! Punteros! Operadores &
Introducción al lenguaje C
4. Funciones Un programa C va a estar compuesto de una o más funciones repartidas en uno o más módulos de código. Como ya se vio, en un programa en C al menos siempre existirá una función main que será
