Apuntadores y arreglos

Solo disponible en BuenasTareas
  • Páginas : 10 (2447 palabras )
  • Descarga(s) : 0
  • Publicado : 7 de marzo de 2011
Leer documento completo
Vista previa del texto
 

Noviembre/2010 Indice 1) Apuntadores y direccines. 2) Apuntadores y argumentos de funciones. 3) Apuntadores y Arreglos. 4) Aritmetica de direcciones. 5) Apuntadores a caracteres y funciones. 6) Arreglos de apuntadores; apuntadores a apuntadores. 7) Arreglos multidimensionales. 8) Iniciación de arreglos a apuntadores. 9) Apuntadores vs. Arreglos multidimencionales. 10) Argumentos en la lineade ordenes. 11) Apuntadores a funciones. 12) Declaraciones compiladas.

Apuntadores y arreglos
Introducción
Un apuntador es una variable que contiene la direccion de una variable. Por lo general llevan un codigo mas compacto y eficiente de lo que se puede obtener en otras formas. El principal cambio en ANSI C es hacer explicitas las reglas acerca de cómo pueden manipularse los apuntadores,obligando a lo que los buenos programadores ya practican y ll que los buenos compiladores ya imponen. El tipo void * (apuntador de void) remplaza a char * como el tipo apropiad para un apuntador generico.

1) Apuntadores y direcciones
Una maquina tiene un arreglo de celdas de memoria numeradas o direccionadas consecutivamente que pueden manipularse individualmente o en grupos.cualquier byte puedeser un char, un par de celdas de un byte pueden tratarse como un entero schort, y cuatro bytes adyacentes forman un long. El operador unario de & da la direccion de un objeto, de modo que la proporcion P=&c; Asigna la direccion de c a la variable p, y se dice que p “apunta a” c. El operador & se aplica a objetos que estan en memoria: variables y elementos de arreglos. No puede aplicarse aexpresiones, constantes o variables tipo registro.

El operador unitario * es el operador de indireccion o desreferencia; supongase que X y Y son enteros e ip es un apuntador a int: Int x = 1, y = 2, z [10]; Int *ip; /*ip es un apuntador a int*/ Ip = &x; /*ip ahora apunta a x*/ Y = *ip; /*y es ahora 1 */ * ip = 0; /* x es ahora 0*/ Ip = &z[0] /* ip ahora apunta a z[0]*/ Las declaraciones de x, y y zson lo que hemops visto todo el tiempo. Las declaraciones del apuntador ip, Int *ip; La sintaxis de la declaracion para una variable imita la sintaxis de expresiones en las que la variable puede aparecer. Esto se aplica tambien a la declaracion de funciones. Double *dp, atof (char * ); Cada apuntador señala a un tipo especifico de datos. (ecepto un apuntador a void se emplea para mantener cualquiertipo de apuntador, pero en si mismo no puede ser desreferenciado) Si ip apunta al entero x, entonces *ip puede en cualquier contexto donde x pueda hacerlo, asi que * ip = *ip + 10; Incrementa *ip en 10. Los operadores unarios * y & se ligan mas estrechamente que los apuntadores aritmeticos; asi la asignación Y = *ip + 1 toma aquello a lo que apunte ip, le agrega y asigna el resultado a y,mientras que *ip + = 1 Incrementa en uno aquello a que ip apunta, como lo hace ++ * ip Y (*ip) + + Sin Los paréntesis la expresión incrementaria ip en lugar de a lo que apunta, dedido a que los operadores unarios como * y ++ se asocian de decha a izquierda.

C pasa los argumentos de funciones por valor, no existe una forma directa para que la funcion que se invoca altere una variable de la funcion quela llama. Ejemplo una rutina de ordenamiento podria intercambiar dos elementos desordenados con una funcion llamada swap.una solucion es hacer que getint regrese el estado de fin de archivo como su valor dde funcion, usando un argumento apuntador para almacenar el entero convertido y tenerlo en la funcion invocadora.

2) Apuntadores y argumentos de funciones

3) Apuntadores y arreglosCualquier operación que pueda lograrse por indexacion de un arreglo tambien puede realizar apuntadores La declaracion int[10] Define un arreglo a de tamaño 10 esto es un bloque de 10 objetos cobnsecutivos llamados a [0], a [1], . . . ., a [9]. La asignación pa = & a[0]; hace que el apunte al elemnto cero da a; esto es, pa contiene la direccion de a [0] El significado de “agregar 1 a un apuntador”, y...
tracking img