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.
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.
No hay comentarios.:
Publicar un comentario