Herramientas de calidad
Cada vez que se declara una variable C, el compilador establece un area de memoria para almacenar el contenido de la viariable. Cundo se declara una varaible int (entero), por ejemplo, el compilador asigna dos bites de memoria. El espacio para esa variable se situa en una posición especifica de la memoria, conocida como dirección de memoria. Cuando se referencia (se haceuso) al valor de la variable, el compilador de C accede automáticamente a la dirección de la memoria donde se almacena e entero. Se puede ganar ineficiencia en el acceso a esta dirección de memoria utilizando un puntero.
Cada variable que se declara en C tiene una dirección asociada con ella. Un puntero es una dirección de memoria. El concepto de puntero tiene correspondencia en la vida diaria.Cuando se envía una carta por correo su información se entrega basada en un puntero que es la dirección de esa carta cuando se telefonea una persona, se utiliza un puntero (el número de teléfono que se marca). Así pues, una dirección e correos y un numero telefónico tiene en común que ambos indican donde encontrar algo. Son punteros a edificios y teléfonos, respectivamente. Un puntero en C tambiénindica en donde encontrar algo, ¿Dónde encontrar los datos qu están asociados con una variable? Un puntero C es la dirección de una variable. Los punteros se rigen por estas reglas básicas.
*Un puntero es una variable como cualquier otra;
*Una variable puntero contiene una dirección que apunta a otra dirección en memoria;
*En esa posición se almacenan los datos a los que apunta el puntero;*Un puntero apunta a una variable de memoria.
El valor de un puntero es una dirección. La dirección depende del estado de la computadora en el cual se ejecuta el programa
PUNTEROS
Los punteros se enlazan a tipos de datos específicos, de modo que C verificara si se asigna la dirección de un tipo de dato al tipo correcto de puntero. Asi por ejemplo, si se define un puntero a float, no se le puedeasignar la dirección de un carácter o un entero. Por ejemplo, este segmento de código nofuncionara:
Float *fp;
Char c;
Fp = &c; /* no es valido */
C no permite la asignación de la dirección de C a fp, ya que fp es una variable puntero, que apunta a datos de tipo real, float.
C requiere que la varibales puntero direccionen realmente variables del mismo tipo de datos que esta ligado a lospunteros de sus declaraciones.
PUTEROS NULL Y VOID
Existen dos tipos de punteros especiales muy utilizados en el tratamiento de sus programas: los punteros void y null (nulo).
Un puntero nulo no apunta ninguna parte –dato valido- en particular, es decir, se utiliza para proporcionar a un programa un medio de conocer cuando una variable puntero no direcciona a un dato valido. Para declara unpuntero nulo se utiliza la macro NULL, definida en los archivos de cabecera STDEF.H, STDIO.H, STDLIB.H y STRING.H. Se debe incluir uno o mas de estos archivos de cabecera antes de que se pueda utilizar la macro NULL.
Los punteros nulos se utilizan con frecuencia en programas con arrays de punteros. Cada posición del array se inicializa a NULL; después se reservan memoria dinmicamente y seasigna a la posición correspondiente del array, la dirección de la memoria.
En C se puede delcarar un puntero de modo que apunte a cualquier punto de dato, es decir, no se asigna aun tipo de dato especifico. El método es delcarar el puntero como un puntero void *, denominado puntero genérico.
Nota: no confundir puntero void y NUL. Un puntero nulo no direcciona ningún dato valido. Un puntero voiddirecciona datos de un tipo no especificado. Un puntero void se puede igualar a nulo sino se direcciona ningún dato valido. Nulo es un valor; void es un tipo de dato
Entrada y salida de datos.
Aquí sólo trataremos la entrada/salida que se comunica con el usuario a través de la pantalla o de la ventana del terminal.
Si creamos una applet no se utilizarán normalmente estas funciones, ya que...
Regístrate para leer el documento completo.