Programacion
INTRODUCCION…
Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. La principal razón de ser de los punteros es la de manejar datos alojados en la zona de memoria dinámica o heap (aunque también se pueden manipular objetos en la zona estática), bien seandatos elementales, estructuras (struct en C) u objetos pertenecientes a una clase (en lenguajes Orientados a Objetos). Gracias a esta propiedad, los punteros permiten modelar un grafo, en donde los elementos de éste son los datos residentes en memoria y las relaciones entre los elementos son los propios apuntadores.
En nuevos lenguajes de alto nivel, los punteros se han tratado de abstraer. Detal forma que en el lenguaje C# sólo pueden ser usados en zonas de código delimitadas como "inseguras", o llegando a su total desaparición del código en lenguajes como Java o Eiffel.
DEFINICION…
Un puntero o apuntador es una variable que da referencia a 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 punteroque contiene una dirección de memoria en la que se encuentra almacenado un valor ' v ' se dice que ' p ' apunta a ' v '.
Un puntero, en C, se declara como sigue:
TIPO * nombre_puntero ;
(donde “TIPO” es cualquier tipo definido). Así, un puntero a carácter se declararía de la siguiente forma:
char *pchar;
Variables punteros.Conceptualmente, desde el punto de vista de un programador, una variable es una entidad cuyo valor puede cambiar a lo largo de la ejecución de un programa.
En el nivel más bajo, una variable se almacena en la memoria del ordenador. Esa memoria puede ser un conjunto de semiconductores dentro de un circuito integrado, ciertos campos magnéticos sobre una superficie de un disco, ciertas polarizaciones en unamemoria de ferrita, o cualquier cosa que aún no se haya inventado. Afortunadamente, no deberemos preocuparnos por esos detalles.
En un nivel más lógico, una variable ocupa un espacio de memoria reservado en el ordenador para contener sus valores durante la ejecución de un programa. Cada variable debe pertenecer a un tipo determinado, y ese tipo determina, por una parte, el tamaño del espacio dememoria ocupado por la variable, y por otra, el modo en que se manipulará esa memoria por el ordenador.
No olvides, si es que ya lo sabías, que la información en el interior de la memoria del ordenador se almacena siempre de forma binaria, al menos a bajo nivel. El modo en que se interpreta la información almacenada en la memoria de un ordenador es, en cierto modo, arbitraria; es decir, el mismo valorpuede codificar una letra, un número, una instrucción de programa, etc. No hay nada diferente en una posición de memoria que contenga una instrucción de programa o una letra de un texto; si observamos una posición de memoria cualquiera, no habrá modo de saber qué significa el valor que contiene. Es mediante el tipo como le decimos al compilador el modo en que debe interpretarse y manipularsecierta información binaria almacenada en la memoria de un ordenador.
De momento sólo veremos los tipos fundamentales, que son: void, char, int, float y double, en C++ se incluye también el tipo bool. También existen ciertos modificadores, que permiten ajustar ligeramente ciertas propiedades de cada tipo; los modificadores pueden ser: short, long, signed y unsigned, y pueden combinarse algunos deellos. También veremos en este capítulo los tipos enumerados, enum.
Operadores
Veremos ahora más detalladamente algunos operadores que ya hemos mencionado, y algunos nuevos. Operadores de Referencia (&) e Indirección (*)
El operador de referencia (&) nos devuelve la dirección de memoria del operando.
Sintaxis:
&<expresión simple>
POR EJEMPLO:
int *punt;
int x = 10;...
Regístrate para leer el documento completo.