Punteros

Solo disponible en BuenasTareas
  • Páginas : 2 (384 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de septiembre de 2010
Leer documento completo
Vista previa del texto
Punteros
Un puntero es un tipo especial de variable, que almacena el valor de una direccion de memoria, esta direccion puede ser la de una variable individual, pero mas frecuentemente sera la de unelemento de un array, una estructura u objeto de una clase. Los punteros, al igual que una variable comun, pertenecen a un tipo (type), se dice que un puntero 'apunta a' ese tipo al que pertenece.Ejemplos:
int* pint;            //Declara un puntero a entero
char* pchar;          //Puntero a char
fecha* pfecha;        //Puntero a objeto de clase 'fecha'
Independientemente del tamaño (sizeof)del objeto apuntado, el valor almacenado por el puntero sera el de una unica direccion de memoria. En sentido estricto un puntero no puede almacenar la direccion de memoria de 'un array' (completo),sino la de un elemento de un array, y por este motivo no existen diferencias sintacticas entre punteros a elementos individuales y punteros a arrays. La declaracion de un puntero a char y otro a arrayde char es igual.

Al definir variables o arrays hemos visto que el tipo (type) modifica la cantidad de bytes que se usaran para almacenar tales elementos, asi un elemento de tipo 'char' utiliza 1byte, y un entero 2 o 4. No ocurre lo mismo con los punteros, el tipo no influye en la cantidad de bytes asociados al puntero, pues todas las direcciones de memoria se pueden expresar con solo 2 bytes(o 4 si es una direccion de otro segmento)
Veamos los efectos de un codigo como el siguiente, en la zona de almancenamiento de datos:
char cad[] = "hola";
char * p;
p = cad;           //Puntero 'p'apunta a 'cad'
[pic]
El puntero esta en la direccion 0xffee pero el valor que hay en esa localidad de memoria es otra direccion, los bytes "F0 FF" indican que el puntero apunta a FFF0, dondecomienza la cadena de caracteres 'cad' con el contenido 'hola' mas el cero de fin de cadena.
En las lineas de codigo no hemos indicado a que caracter del array apunta el puntero, pero esa notacion es...
tracking img