Programacion1 apuntadores

Páginas: 7 (1588 palabras) Publicado: 31 de agosto de 2012
PROGRAMACIÓN I UNIDAD IV
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA Luz A. Sánchez Gálvez

La Memoria en un programa


Para un programa en C, la memoria es simplemente una fila de bytes.

La Memoria en un programa




Para un programa en C, la memoria es simplemente una fila de bytes. Cada byte tiene algún valor,

La Memoria en un programa




Para un programa en C, la memoria essimplemente un renglón de bytes. Cada byte tiene algún valor, y una ubicación en la memoria.

La Memoria en un programa


Cuando se definen variables
int contador; unsigned char c;



Suceden dos cosas

La Memoria en un programa


La memoria es reservada para almacenar las variables.

La Memoria en un programa
 

La memoria es reservada para almacenar las variables. Y el compilador “recuerda suubicación”

“c” inicia en 28 “contador” inicia en 24

Variables de Memoria


Como resultado, cada variable tiene dos valores.
 

El “valor” almacenado en la variable. La “ubicación” de la memoria utilizada para almacenar este valor

El nombre de la variable es simplemente para “designar” la ubicación.  La ubicación es también llamada la “dirección de la variable


Apuntadores






Unapuntador es una variable que contiene la dirección de memoria de otra variable, es decir, apunta a una posición de memoria. La ventaja principal del uso de los apuntadores es la velocidad de tratamiento de los datos y sobre todo para manejar arreglos y cadenas de caracteres. Se utilizan dos operadores especiales:
 

* proporciona el contenido de una variable. & proporciona la dirección de unavariable.  Sea v una variable, entonces &v es la ubicación o bien la dirección en la memoria.

Apuntadores


Si p es un apuntador
p=&x guarda en p la dirección de la variable x, es decir, que p apunta a la variable x. y=*p asigna a la variable y el valor donde apunta el apuntador p.



Lo anterior es lo mismo que:
y=x asigna a y el valor de x.



Los apuntadores pueden ser declarados utilizando elcaracter *
int *p; unsigned char *ch; struct ComplejoNumero c; int **pp; /*apuntador a int */ /* apuntador a unsigned char*/ /* apuntador a struct ComplejoNumero*/ /* apuntador a apuntador a int */

Apuntadores




Una dirección de una variable puede ser obtenida utilizando & La dirección retornada es un apuntador a un tipo
int i = 8; int p = &i;

/ * &i retorna un int p ahora apunta a i */ Apuntadores
  

Un apuntador puede ser referenciado utilizando un * Retorna el valor en la ubicación que es apuntada a Puede ser utilizado para escribir un valor en la ubicación
int i = 8; int *p = &i; int j = *p; *p = 12;

/* /* /*

p ahora apunta a i */ j ahora contiene 8 */ i ahora contiene 12 */

Apuntadores

int i = 8 &i = 20

Apuntadores

int i = 8 &i = 20

int *p = &i &p = 28 Apuntadores

int i = 8 &i = 20

int *p = &i (=20) &p = 28

Apuntadores

int i = 8 &i = 20

int *p = &i (=20) &p = 28 int j = *p (=8)

Apuntadores

int i = 8 &i = 20

int *p = &i (=20) &p = 28 int j = *p (=8) *p=12

Apuntadores


Con la ayuda del programa se podrá apreciar lo explicado anteriormente:

#include #include int i, j; int *p; int main(void) { int i = 8; printf("i tieneel valor %d y es almacenada en %p\n", i, &i); int *p = &i; /* p ahora apunta a i */ printf("p tiene el valor %p y es almacenada en %p\n", p, &p); int j = *p; /* j ahora contiene 8 */ printf("j tiene el valor %d y es almacenada en %p\n", j, &j); *p = 12; /*i ahora contiene 12 */ printf("El valor del entero apuntado por p es %d\n", *p); system("pause"); return 0; }

Apuntadores


A continuación sepuede comprobar lo explicado

Arreglos con Apuntadores




Existe una fuerte relación entre apuntadores y arreglos, ya que para acceder a cada uno de los elementos del arreglo se puede hacer con apuntadores, lo que aumenta la velocidad de acceso. Para acceder a los elementos de un arreglo existen dos formas:
 

Indexando con un índice normal para acceder a cada uno de los elementos. Con...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programacion1
  • Programacion1
  • Programacion1
  • programacion1
  • Apuntes
  • Apuntes
  • Apuntes
  • Apuntes

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS