13. Acceso Aleatorio.

13.1. Lectura, Escritura Aleatoria

Introducción a Métodos de lectura y escritura en Archivos de acceso aleatorio. Antes de avanzar con las funciones que permiten escribir y leer vamos a recordar algo de
punteros.

Puntero a Char del tipo constante y puntero a char

Los punteros son variables que guardan una dirección de memoria.

Los punteros son variables especiales por no tener sólo un valor (dirección de memoria), pero también tienen  asociado el valor a que apuntan: tipo de la variable.
Como cualquier variable su valor puede ser constante o no.
La palabra clave const declara que un valor no es modificable por el programa.

No puede hacerse ninguna asignación posterior a un identificador especificado como const
El tipo “const char” es una constante y el valor no puede ser cambiado por lo tanto SIEMPRE debe tener un valor al inicializar, ya que luego no se puede modificar, mientras que una variable , si puede ser cambiado, veamos unos ejemplos:

const char X = ’A’; //X es un Valor constante...no puede ser modificado
char Y = ’B’; // Y es Variable, si puede ser modificado.
Y=’C’; //ok.
X=’D’;// El compilador acusaría error:assignment of read-only varaible ’X’
const int peso = 45; // ok, una constante int
const int altura ;//Error , no se inicializa al declarar la constante
const float talla = 40.2; // ok, una constante float
const float talla; // Error, no se inicializa al declarar la constante

De la misma manera que a las variables, a los punteros se les puede anteponer la palabra const, veamos como sería:


char * const pt1="Sol"; //Puntero Constante a string

char  const * pt2="Luna"; //Puntero a cadena Constante


Puntero a un caracter constante.

Este tipo de definición se usa para definir tipicamente cadenas de caracteres. Con un puntero a constante caracter puedo hacer que apunte a varios elementos del arreglo o strings, pero no puede modificar los strings, ya que son constantes!.


En la función *prt , no puede modificar el caracter al cual apunta.. pero puede apuntar a varios.. es mas a cada uno de los caracteres del string!!.
Un puntero no constante a los datos constantes es un puntero que puede ser modificado para apuntar a cualquier elemento de datos del tipo adecuado, pero los datos a las que apunta no se puede modificar a través de ese puntero.