Page 39

1 Introducci´on a C

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

Direcci´ on de a: 3221222580 Direcci´ on de b: 3221222576

O sea, que en realidad este otro gr´ afico representa mejor la disposici´on de las variables en memoria:

3221222572: 3221222576: 3221222580: 3221222584:

01010010 00000000 00000000 11010111

10101000 00000000 00000000 01000110

01110011 00000000 00000000 11110010

11110010 00001000 00000000 01011101

b a

Normalmente no necesitamos saber en qu´e direcci´on de memoria se almacena una variable, as´ı que no recurriremos a representaciones gr´aficas tan detalladas como las que hemos presentado. Usualmente nos conformaremos con representar las variables escalares mediante cajas y representaremos su valor de una forma m´as c´omodamente legible que como una secuencia de bits. La representaci´ on anterior se simplificar´a, pues, as´ı: a

0

b

8

Las direcciones de memoria de las variables se representar´an con flechas que apuntan a sus correspondientes cajas: &a a

0

b

8

&b

Ahora que hemos averiguado nuevas cosas acerca de las variables, vale la pena que reflexionemos brevemente sobre el significado de los identificadores de variables all´ı donde aparecen. Considera este sencillo programa: 1

#include <stdio.h>

2 3 4 5

int main(void) { int a, b;

6

a = 0; b = a; scanf ("%d", &b); a = a + b;

7 8 9 10 11

return 0;

12 13

}

¿C´omo se interpreta la sentencia de asignaci´on a = 0? Se interpreta como ((almacena el valor 0 en la direcci´ on de memoria de a)). ¿Y b = a?, ¿c´omo se interpreta? Como ((almacena una copia del contenido de a en la direcci´ on de memoria de b)). F´ıjate bien, el identificador a recibe interpretaciones diferentes seg´ un aparezca a la izquierda o a la derecha de una asignaci´on: a la izquierda del igual, significa ((la direcci´on de a)), y a la derecha, es decir, en una expresi´on, significa ((el contenido de a)). La funci´ on scanf necesita una direcci´on de memoria para saber d´onde debe depositar un resultado. Como no estamos en una sentencia de asignaci´on, sino en una expresi´on, es necesario Introducci´ on a la Programaci´ on con C

33

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement