Ayudantía N5 - Alejandro Reyes Cooke

Anuncio
Ayudantía 5
Alejandro Reyes Cooke
Mail: [email protected]
http://zirks.ublog.cl
Objetivos:
- Repaso General Solemne 1
- Ciclo Do While.
- Introducción a Punteros.
Ciclo Do While: Al menos una vez ejecuta el código.
#include <stdio.h>
main()
{
int
numero;
do
{
printf ("\nDime un numero :");
scanf ("%d",&numero);
} while (numero !=0);
Qué es un puntero:
Un puntero o apuntador es una variable que referencia una región de memoria; en
otras palabras es una variable cuyo valor es una dirección de memoria. Si se tiene
una variable ' p ' de tipo puntero que contiene una dirección de memoria en la que se
encuentra almacenado un valor ' v ' se dice que ' p ' apunta a ' v '.
[Memoria]
|
.
|
|
.
|
|
.
|
----|---------|
| p |---->|
v
|
----|---------|
|
.
|
|
.
|
|
.
|
Trabajar con punteros implica la no manipulación de las variables en sí, sino
manejar direcciones de memoria en la cuales residen los datos.
Esto es lo que en programación se conoce como referencia indirecta o
indirección. Accedemos a la información a través de un puntero que nos dice
dónde se encuentra ésta. Y a grandes rasgos éstos son los punteros, referencias
indirectas a datos en la memoria del ordenador.
Operadores sobre punteros:
&: Dirección de la Memoria
*: Acceso al valor
main ()
{
int x,y;
int *px;
/* Variables de tipo entero */
/* Puntero a una variable de tipo entero */
/* Leemos la dirección -compartimiento- de la variable
-informe- x mediante & y lo almacenamos en la variable puntero
px */
px = &x;
/* px contiene la dirección en la que se encuentra x */
/* Utilizando el operador *, podemos acceder a su
información. *px representa ahora el valor de la variable x */
*px = 10;
/* Ahora x contiene el valor 10 */
y = 15;
/* Si ahora hacemos que nuestro puntero apunte a la
variable y utilizando de nuevo el operador & */
px = &y;
/* El valor que ahora toma *px será el valor de y puesto
que es el compartimiento al que ahora estamos apuntando */
*px = 125; /* Ahora y contiene el valor 125 */
x = *px
/* Ahora x contiene también 125 */
}
Descargar