domingo, 26 de enero de 2014

Apuntadores

Que tal amigos hoy les traigo otra entrega de C, en donde vamos a ver los punteros o apuntadores, bueno los apuntadores son las direcciones de memoria de otras variables y esta memoria se suele escribir como números en hexadecimal. Ahora se dice que cuando un apuntador “APUNTA” a la variable cuyo valor se almacena en una dirección de memoria que contiene el apuntador. Un ejemplo es, si un apuntador “Puntero”  almacena la dirección de una variable “X” se dice que el “Puntero” apunta a “X”.

Ahora un apuntador puede ser de cualquier tipo de variable, solo que ahora tiene que contener antes del nombre de la variable el símbolo “ * ” y con esto nosotros sabremos que es un apuntador, enseguida para hacer referencia hacia una variable que nosotros escojamos es necesario colocar el símbolo “ & ” y con esto le asignaremos la dirección de memoria. Veamos un ejemplo de cómo seria declarar un apuntador y como referenciar a una variable.

Declaración de un apuntador:

Int *Ejemplo;

Asignación de referencia (dirección de memoria):

Ejemplo = &numero1; //Aquí le asignamos la dirección de memoria de una variable a un apuntador

Para entender esto aun mejor retomare el ejercicio de los operadores matemáticos y lo utilizare para ejemplificar el tema de apuntadores, he aquí el código.

#include <stdio.h>
main()
{
    int num1, num2;
    int suma, resta,multiplicacion,division;
    int *apuntador1, *apuntador2;
    printf("Ingresa dos numeros separados por un ESPACIO o ENTER\n");
    scanf("%d%d",&num1,&num2);
    //Para hacer referencia a la memoria se utiliza & y
    //así obtiene el apuntador la dirección de memoria y en automático obtiene el dato(como si fuera un chismoso que de todo se entera)
    apuntador1=&num1;
    apuntador2=&num2;
    //Operaciones utilizando los apuntadores
    suma=*apuntador1 + *apuntador2;
    resta=*apuntador1 - *apuntador2;
    multiplicacion= *apuntador1 * *apuntador2;
    division=*apuntador1 / *apuntador2;

    //Mostramos los resultados de cada operación
    printf("La suma de: %d + %d = %d\n",*apuntador1,*apuntador2,suma);
    printf("La resta de: %d - %d = %d\n",*apuntador1,*apuntador2,resta);
    printf("La multiplicacion de: %d * %d = %d\n",*apuntador1,*apuntador2,multiplicacion);
    printf("La division de: %d / %d = %d\n",*apuntador1,*apuntador2,division);

    return 0;
}




Como abran notado hay un pequeño detalle en el scanf ya que guardamos en dos variables a la vez esto funcionara siempre y cuando coloquen bien los %d, %i, %s, %c, %f dependiendo a sus variables y asi optimizan su código evitándose otras líneas de scanf, eso como un pequeño tip para optimizar, ahora regresando al ejercicio, vieron que en ningún momento llame a las variables num1, num2 para mostrarlo en pantalla si no llame a los apuntadores claro con su respectivo símbolo “ * ”.

Muy bien amigos espero que les haya gustado y si es el caso compártelo con tus amigos, para que ellos también lo aprendan, si tienes alguna duda coméntala.


Nos pueden seguir por Facebook, twitter y YouTube.

No hay comentarios.:

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *