Programacion1 apuntadores
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 = 28Apuntadores
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
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...
Regístrate para leer el documento completo.