sábado, 20 de octubre de 2012

INSERTAR UN ELEMENTO EN UNA LISTA VACÍA


LISTA VACÍA:

Es la forma de darle valor a una lista que esta vacía , el puntero apuntando a null (vació).



Esto sucede al tomarlo vació, solo habrá un puntero en lista apuntando hacia null.


INSERTAR NODO:

Al insertar un nodo en nuestra lista pasaríamos a tener el puntero "lista", hacia el nodo insertado con sus respectivas casillas (dato-apuntador), y este apuntando hacia null mostrándonos de esta forma que es el final de nuestra lista.







viernes, 19 de octubre de 2012

Ventajas de los apuntadores
Ofrecen potencia y la flexibilidad en C.

Se pueden tener apuntadores a cualquier tipo de variable.

Proporcionan mucha utilidad al programador para accesar y manipular datos.
También son útiles para pasarle parámetros a las funciones de tal modo que les permiten modificar y regresar valores a la rutina que las llama.
C usa los apuntadores en forma extensiva.
·    Es la única forma de expresar algunos cálculos.
·    Se genera código compacto y eficiente.
·    Es una herramienta muy poderosa

El operador unario o monádico y devuelve la dirección de memoria de una variable.

Declarar e inicializar apuntadores es bastante fácil.
Existe una relación estrecha entre los punteros y los arreglos. En C, un nombre de un arreglo es un índice a la dirección de comienzo del arreglo. En esencia, el nombre de un arreglo es un puntero al arreglo.
Mientras un programa esta corriendo todas las variables se guardan en memoria, cada una tiene su dirección o localidad única. 
En C se pueden tener arreglos de apuntadores ya que los apuntadores son variables.

Los punteros permiten simular el paso por referencia, crear y manipular estructuras dinámicas de datos, tales como listas encadenadas, pilas, colas y arboles.



Desventajas de los apuntadores
No es posible en otros lenguajes.
C usa apuntadores explícita mente con:
·    Arreglos,
·    Estructuras y
·    Funciones

Cuando se utiliza incorrectamente, son también fuente tanto de fallas en el programa como de frustración para el programador. 
Un apuntador a cualquier tipo de variables es una dirección en memoria -- la cual es una dirección entera, pero un apuntador NO es un entero.
C sin embargo es mucho más sutil en su relación entre arreglos y apuntadores.
El manejo complicado del almacenamiento.   
Alta sobrecarga por el movimiento de líneas.

No asignar un apuntador a una dirección de memoria antes de usarlo.
In dirección no válida.




CUADRO COMPARATIVO DE LOS APUNTADORES

APUNTADORES: Una matriz sin subíndice es un puntero al primer elemento de la matriz.
MATRICES: Las matrices son punteros constantes.
El operador de dirección (&) que devuelve la dirección de memoria de su operando
El operador de In dirección (*) que devuelve un alias para el objeto al cual apunta el operando del puntero.

Un puntero es una variable como cual quier otra.
Una variable puntero contiene una dirección que apunta a otra posición en memoria.

Un puntero null o  nulo no apunta a ninguna parte, no direcciona ningún dato  valido en memoria.
Se puede declarar un puntero de modo que apunte a cualquier tipo de dato, es decir, no se  asigna a un tipo de dato específico. El método es declarar el puntero como puntero void* denominado puntero genérico Void*prt.

DECLARACIÓN
INICIALIZACIÓN

Aritmética de Punteros
Al usar punteros a matrices, hay que tener en cuenta que la aritmética cambia sensiblemente.

Matrices de punteros
Para realizar una estructura de datos dinámica, se puede utilizar una matriz donde sus elementos sean punteros. Suponiendo que queramos hacer un calendario y lo dividamos por semanas. Podríamos utilizar una matriz con los días de la semana.

 Punteros a punteros: un puntero puede apuntar a otra variable puntero. Este concepto se utiliza con mucha frecuencia en programas complejos de C. para declarar un puntero aun puntero pjppp se hace preceder a la variable con dos asteriscos (**).

Punteros y arrays: pueden direccionar arrays como si fueran py punteros y punteros como si fueran arrays. La posibilidad de almacenar y acceder a punteros y arrays, implica que se pueden almacenar cadenas de datos en elementos de arrays. Sin punteros eso no es posible, ya que no existe el tipo de dato cadena en C. no existen variables de cadena, úidd únicamente constantes de cadena.

sábado, 13 de octubre de 2012


PUNTEROS O APUNTADORES EN C++.

Un puntero es una variable que contiene una dirección de memoria.. El tipo de
variable que almacena una dirección se denomina puntero.




#include <stdio.h>
#include <stdlib.h>

main()
{
   int n= 75 ;-------------// inicializaciones y declaraciones del puntero.
   int m = 75;
   char nombre='roberto';--------//las variables deben llevar el tipo correspondiente.
 
   printf("n=%d\n",n);-------------// valor de la variable.
   printf("&n=%p\n",&n);----------------------------------//posición o dirección  de la variable en memoria.
 
   printf("nombre=%c\n",nombre);
   printf("&nombre=%p\n",&nombre);
   
   printf("m=%d\n",m);
   printf("&m=%p\n",&m);
   
    system("PAUSE");
    return 0;
}