17.05.2013 Views

Tutorial de Apuntadores y Arreglos en C - Cimat

Tutorial de Apuntadores y Arreglos en C - Cimat

Tutorial de Apuntadores y Arreglos en C - Cimat

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

esperamos <strong>en</strong>contrar al mom<strong>en</strong>to <strong>de</strong> la ejecución, un 2 colocado <strong>en</strong> el área <strong>de</strong> memoria reservada para guardar<br />

el valor <strong>de</strong> k. En C nos referimos a una variable como la <strong>de</strong> tipo <strong>en</strong>tero k como un “objeto” 2 .<br />

Ti<strong>en</strong>e s<strong>en</strong>tido <strong>de</strong>cir que hay dos valores asociados con el objeto k, uno es el valor <strong>de</strong>l <strong>en</strong>tero alojado ahí (un 2<br />

<strong>en</strong> el ejemplo <strong>de</strong> arriba) y el otro el “valor” <strong>de</strong> la localidad <strong>de</strong> la memoria don<strong>de</strong> se ha guardado, es <strong>de</strong>cir, la<br />

dirección <strong>de</strong> k. Algunos textos se refier<strong>en</strong> a estos dos valores con la nom<strong>en</strong>clatura rvalue (“are value”, –right<br />

value– valor a la <strong>de</strong>recha) y lvalue (“el value” –left value– valor a la izquierda).<br />

En algunos l<strong>en</strong>guajes, el lvalue, es el valor que se permite a la izquierda <strong>de</strong>l operador <strong>de</strong> asignación ‘=’ (la<br />

dirección don<strong>de</strong> se alojará el resultado <strong>de</strong> la evaluación <strong>de</strong> la expresión). El rvalue es el que se <strong>en</strong>cu<strong>en</strong>tra a la<br />

<strong>de</strong>recha <strong>de</strong> la operación <strong>de</strong> asignación, el 2 <strong>de</strong> arriba. Los rvalues no pue<strong>de</strong>n ser usados <strong>en</strong> la parte izquierda<br />

<strong>de</strong> una instrucción <strong>de</strong> asignación. Así que hacer algo como: 2 = k; No es permitido.<br />

En realidad, la <strong>de</strong>finición <strong>de</strong> arriba para "lvalue" es modificada <strong>de</strong> algún modo para C, <strong>de</strong> acuerdo con K&R II<br />

(página 197) [1]:<br />

“Un objeto es una región <strong>de</strong> almac<strong>en</strong>ami<strong>en</strong>to; Un lvalue es una expresión que hace refer<strong>en</strong>cia a un objeto.”<br />

En este mom<strong>en</strong>to, nos basta la <strong>de</strong>finición <strong>de</strong> arriba. A medida que nos vayan resultado familiares los<br />

apuntadores <strong>en</strong>traremos más a <strong>de</strong>talle con esto.<br />

Bi<strong>en</strong>, ahora consi<strong>de</strong>remos:<br />

int j, k;<br />

k = 2;<br />

j = 7;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!