Tecnologo

Páginas: 7 (1503 palabras) Publicado: 4 de noviembre de 2012
Apuntadores en c++
Una de las cosas más difíciles que encuentran los principiantes en C es entender el concepto de apuntadores. El propósito de este documento es dar una introducción sobre apuntadores y de su uso a estos principiantes. Me he encontrado a menudo que la principal razón por la que los principiantes tienen problemas con los apuntadores es que tienen una muy pobre o mínima concepciónde las variables, (del modo en que C hace uso de ellas). Así que comencemos con una discusión sobre las variables de C en general. Una variable en un programa es algo con un nombre, que contiene un valor que puede variar. El modo en que el compilador y el enlazador (linker) manejan esto es que asignan un bloque específico de la memoria dentro dela computadora para guardar el valor de unavariable. El tamaño de este bloque depende del rango en que a esta variable le es permitido variar. Por ejemplo, en PC’s de 32 bits, el tamaño de una variable de tipo entero (int) es de 4 bytes, en una máquina antigua de 16 bits los enteros tienen un tamaño de 2 bytes. En C el tamaño de un tipo de variable como una de tipo entero no tiene porqué ser el mismo en todos los tipos de máquinas. Es más en Cdisponemos de diferentes tipos de variables enteras, están los enteros largos (long int) y los enteros cortos (short int) sobre los que puedes averiguar en cualquier texto básico sobre C. El presente documento asume que se está usando un sistema de 32 bits con enteros de 4 bytes .Si quieres conocer el tamaño de los diferentes tipos de enteros de tu sistema, ejecutar el siguiente código te dará lainformación.

#include <stdio.h>int main()
{
printf("El tamaño de short (entero corto), es: %d\n", sizeof(short));
printf("El tamaño de int (entero), es: %d\n", sizeof(int));
printf("El tamaño de long (entero largo), es: %d\n", sizeof(long));
}

Cuando declaramos una variable le informamos al compilador 2 cosas, el nombre de la variable y el tipo de lavariable. Por ejemplo, declaramosuna variable de tipo entero llamada k al escribir:
 
int k;

Cuando el compilador encuentra la palabra “int” de esta instrucción, reserva 4 bytes (en un PC) de memoria para almacenar el valor del entero. También construye una tabla de símbolos. Y en esa tabla agrega el símbolo k y la correspondiente dirección de la memoria en donde esos 4 bytes han sido reservados. Así que si luego escribimos:k = 2;

Esperamos encontrar al momento de la ejecución, un 2 colocado en el área de memoria reservada para guardar el valor de k. En C nos referimos a una variable como la de tipo entero k como un “objeto”
2 .Tiene sentido decir que hay dos valores asociados con el objeto k, uno es el valor del entero alojado ahí (un 2en el ejemplo de arriba) y el otro el “valor” de la localidad de lamemoria donde se ha guardado, es decir, la dirección de k. Algunos textos se refieren a estos dos valores con la nomenclatura rvalue  (“are value”, –rightvalue– valor a la derecha) y lvalue  (“el value” –left value– valor a la izquierda).En algunos lenguajes, el lvalue, es el valor que se permite a la izquierda del operador de asignación ‘=’ (la dirección donde se alojará el resultado de la evaluaciónde la expresión). El rvalue es el que se encuentra a la derecha de la operación de asignación, el 2 de arriba. Los rvalues no pueden ser usados en la parte izquierda de una instrucción de asignación. Así que hacer algo como:
2 = k;
No es permitido.  En realidad, la definición de arriba para "lvalue" es modificada de algún modo para C, de acuerdo con K&R Un objeto es una región dealmacenamiento; Un Lvalue es una expresión que hace referencia a un objeto.
En este momento, nos basta la definición de arriba. A medida que nos vayan resultado familiares los apuntadores entraremos más a detalle con esto. Bien, ahora consideremos:

int j, k;k = 2;j = 7; <-- línea 1k = j; <-- línea 2

En lo de arriba, el compilador interpreta la j en la línea 1 como la dirección de la variable j...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Tecnologico
  • Tecnologo
  • Tecnologo
  • tecnologa
  • tecnologicos
  • tecnologo
  • Tecnologa
  • tecnologo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS