Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Aprende C con ParaNoix - Punteros

Aprende C con ParaNoix - Punteros

 ----- 
Creative Commons Curso gratis de Paranoix - 23 de Abril de 2007
Temas Relacionados: Lenguaje C
18. Punteros

Punteros

 

Un puntero es una variable que contiene una direcci¨®n de memoria, usualmente la direcci¨®n de otra variable. Los operadores de los punteros son dos & ¨¤ ¡°direcci¨®n de¡± y * ¨¤ ¡°en la direcci¨®n de¡±. Para entender como funcionan los punteros es interesante que realicemos un ejercicio de movimiento por un vector utilizando solo metodolog¨ªa de punteros. Supongamos que tenemos un vector de 8 enteros:

 

0

1

2

3

4

5

6

7

4

8

3

6

2

5

9

1

 

Y queremos cambiar estos dos valores oscurecidos en la imagen utilizando solo metodolog¨ªa de punteros:

 

0

1

2

3

4

5

6

7

4

8

3

6

9

5

0

1

 

Esta seria una de las formas de hacerlo:

 

 

#include <stdio.h>

#include <conio.h>

 

main()

{

int *ptr, *ptr2;

int vector[]={4,8,3,6,2,5,9,1};

int i;

 

for(i=0;i<=7;i++)

 {

   printf("Vector[%d]= %d\n",i,vector[i]);

 }

getch();

 

ptr=vector;

ptr++;

ptr+=3;

*ptr=9;             /*vector[4]=9*/

ptr2=vector+6;

*ptr2=0;            /*vector[6]=0*/

printf("\n\n");

 

for(i=0;i<=7;i++)

 {

   printf("Vector[%d]= %d\n",i,vector[i]);

 }

getch();

}

 

 

Veamos que es lo que esta sucediendo, primero declaramos dos variables puntero, ptr y ptr2. Declaramos el vector y lo inicializamos a los n§ìmeros que le hemos metido entre las llaves. Con el primer bucle for(), mostramos por pantalla el vector. Ahora es cuando viene la chicha :D. Lo hare graficamente para que os entereis bien:

 

 

Char *p ¨¤ p++ Incrementa el valor de p en 1 bytes

Int *p   ¨¤ p++ Incrementa el valor de p en 2 bytes

Flota *p ¨¤ p++ Incrementa el valor de p en 4 bytes

 

 

Veamos un ejemplo:

 

 

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

 

main()

{

 int i;   /* Numero Entero */

 int *pl; /* Declaramos un Puntero */

 

 pl=&i;

 *pl=10;

 printf("El puntero ha funcionado y su valor es: %d",i);

 getch();

}

 

 

Tambi¨¦n podemos utilizar punteros de tipo car¨¢cter. Para almacenar una frase por ejemplo:

 

 

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

 

main()

{

 char *string;

 string="Estructura";

 printf("Esto es una %s",string);

 getch();

}

 

 

Otro ejemplo utilizando punteros con variables float:

 

 

#include <stdio.h>

#include <conio.h>

 

main()

{

 float f;

 float *pF;

 pF=&f;

 *pF=178.3;

 printf("%f",f);

 getch();

}

 

 

 

 

Autor y licencia de 'Aprende C con ParaNoix - Punteros'
Paranoix

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.

Wikis relacionados con 'Aprende C con ParaNoix - Punteros'

En este artículo pretendo explicar que son, para que son y como se usan los... Más »
A medida que una empresa acumula experiencia en la producción de un producto o servicio... Más »
Con este humilde artículo espero facilitar la comprensión del Inline Assembly en Gcc. Si bien... Más »
Las investigaciones históricas han comprobado que el petróleo, o aceite mineral (petrae = piedra y... Más »
Según Philip Kotler, la relación comercial puede ser de diferentes tipos. Con la terminología de... Más »
Gente Wiki
Laura Narvaez
Analistas de sistemas especializada en artes gráficas, docente por mas de 3 años de las herramientas gráficas en computador, formé...
Alejandro Blaho Martinez Kesovia
Profesional técnico en sistemas con más de 10 años de experiencia en el sistema financiero , ex ibm donde me...
Lourdes Ñique
Hola, soy licenciada en educación. Mi especialidad es artes plásticas y por cuestiones de la vida me involucré en informática,...
Hablar en público, Investigación periodística,...
Alejandro Velasco Chilpa
Ingeniero Hidrólogo por la Universidad Autónoma Metropolitana con 25 años de experiencia en estudios y proyectos sobre recursos hídricos. Actualmente...
Wilder Augusto Delgado Quispe
Soy docente de la i. E. Santa magdalena sofía de la especialidad de biología química. Además estudio en la universidad...
Giovanny Lucero
Soy ingeniero en administracion de empresas y trabajo como profesor universitario y soy alegre, amigable.
Plan de marketing
Suscribirse
Concurso de proyectos educativos
¿Estás seguro de que deseas eliminar este capítulo?