Los mejores cursos GRATIS © AulaFacil.com
  • [Entrada Profesores]
  • Certificaciones
  • [Mi AulaFácil]
jueves, 16 agosto 2018 español
Síguenos
Publica tu curso
¿Cómo Funciona AulaFácil?

Uso de punteros

Hemos visto el uso de punteros de forma teórica, ahora toca la práctica.

Primeramente vamos a ver un ejemplo sencillo de cómo distinguir entre la dirección de memoria de una variable y su valor. Hasta ahora solo habíamos trabajado con los valores de las variables.

27-1

 

Creamos una variable llamada "num" a la que le damos el valor de 2. Y a través de dos printf mostramos su dirección de memoria y su valor. Para mostrar la dirección de memoria es necesario escribir "%p". 

Y en el nombre de la variable debemos poner "&" delante. Eso es lo que indica al programa que muestre la dirección de memoria en vez de su valor. 

El programa dará como resultado algo así:

27-3

 

Tened en cuenta que la dirección de memoria es variable, es decir, que seguramente cuando ejecutéis vosotros el programa saldrá otra diferente a la que estáis viendo ahora en pantalla.

 

Veamos otro ejemplo con punteros un poco más complejos, esta vez con dos variables. 

27-2

 

En este ejemplo crearemos variables tipo puntero. Lo que tenemos que hacer para indicar que es un puntero es ponerle un "*" antes del nombre de la variable, como ocurre con punt1 y punt2. Al ser "int" indicamos que esos punteros apuntarán a un tipo entero. 

Bien, creamos dos variables tipo int y dos punteros tipo int. Le damos valor a las variables num1 y num2. Luego, a los punteros le damos una dirección de memoria, no un valor.

punt1 = &num1; //punt1 apunta a num1
punt2 = &num2; //punt2 apunta a num2
 
¿Qué quiere decir esto? Que punt1 apuntará a num1, y que punt2 apuntará a num2. O sea, que apuntan a la dirección de memoria donde se guardan las variables num1 y num2 (de hecho, si mostramos la dirección de memoria de &num1 y &num2, veremos como son las mismas).
 
Ya solo nos queda por explicar el último printf, donde se muestra el valor que contiene cada puntero. Esto se muestra poniendo un "*" a la hora de mostrar por pantalla. Como apunta a un tipo int seguimos poniendo "%i" para mostrar su valor.
Como comprobaréis en el programa, los valores que contienen los punteros son 2 y 5 respectivamente, ya que son los valores que contienen las variables num1 y num2. 
¿Por qué tienen ese valor los punteros? Porque le hemos dado la dirección de memoria de las variables num1 y num2, por tanto los punteros apuntan allí, y tienen sus mismos valores.
 
El resultado del programa es el siguiente:
27-4
 
Todo esto resulta muy complejo al principio, es el tema más complicado del lenguaje C, y solo con el tiempo podréis ir asimilando y comprendiendo de mejor forma como funcionan. Por lo pronto, con haceros una idea es más que suficiente.
 
Y aquí el vídeo del funcionamiento del programa, con algunas modificaciones para entender mejor como funcionan los punteros:
Uso de punteros
Conoce al Autor/a:
  • Daniel Pozo Chichon   Contactar con el Autor
    Técnico en Desarrollo de Aplicaciones Informáticas (Grado superior)

    Tiene 2 contenidos
Gracias por compartir y gracias por enlazar la página
Compartir en Facebook
Acepto vuestra política de privacidad
Consentimiento Expreso para el tratamiento de datos de carácter personal recabados por vía electrónica (leer consentimiento)

¡Suscríbete GRATIS a nuestro boletín diario!:

Búsqueda personalizada
Existen nuevos mensajes en las siguientes salas de chat:

      Recibe gratis alertas en tu navegador, sin configuraciones ni registros. Más info...
      [No me interesa] | [Me Interesa]



      ¿Dudas? ¿Preguntas? Plantéalas en el foro
      Suscríbete Gratis al Boletín

      Escribir la dirección de Email:

      Acepto vuestra política de privacidad
      Consentimiento Expreso para el tratamiento de datos de carácter personal recabados por vía electrónica (leer consentimiento)

      Delivered by FeedBurner

      Destacamos
      Cargando datos...
      Buenos Artículos Diarios

      Sigue a AulaFácil en:

      Ránking Mundial Certificados
      Banner AulaFácil

      Este es un producto de AulaFacil S.L. - © Copyright 2009
      B 82812322 Apartado de Correos 176. Las Rozas 28230. Madrid (ESPAÑA)