Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   C/C++ (http://www.forosdelweb.com/f96/)
-   -   Buen tutorial de punteros (http://www.forosdelweb.com/f96/buen-tutorial-punteros-453756/)

marse 03/01/2007 05:14

Buen tutorial de punteros
 
Llevo un tiempo dandole vueltas al tema de punteros, con diferentes explicaciones, sé lo que son y cómo se usan, pero en la práctica me hago un lío y nunca me salen bien los ejercicios. ¿conocen algun buen tutorial de C?
Gracias de antemano!

MaxExtreme 03/01/2007 07:08

Re: Buen tutorial de punteros
 
Si te haces un lío es porque no tienes los conceptos claros.

http://www.google.es/search?hl=es&q=punteros+C

Todos esos ;)

marse 03/01/2007 07:21

Re: Buen tutorial de punteros
 
Gracias... imaino que será por eso :(

Instru 03/01/2007 13:05

Re: Buen tutorial de punteros
 
Vale, ve mi firma, ahi esta algo interesante sobre punteros.

Saludos

_Lucifer_ 05/01/2007 20:42

Re: Buen tutorial de punteros
 
Cita:

Iniciado por marse (Mensaje 1839865)
Gracias... imaino que será por eso :(

No te desanimes...solo revisa los links que te dan y encontraras mas informacion, lee lo que te recomiendan que estos camaradas saben por que te lo dicen.

Cuando leas y aclares tus dudas, vienes y aclaras las nuevas dudas...asi es como te das cuenta que estas aprendiendo. Aclaras nuevas dudas y se te presentan otras nuevas...

Saludos

marse 10/01/2007 10:48

Re: Buen tutorial de punteros
 
Gracias por la ayuda, vosotros haceis que esto de la programación sea más bonito (en clase puede llegar a ser un coñazo), a ver si consigo pillarle el truco!

_Lucifer_ 10/01/2007 12:07

Re: Buen tutorial de punteros
 
Cita:

Gracias por la ayuda, vosotros haceis que esto de la programación sea más bonito (en clase puede llegar a ser un coñazo), a ver si consigo pillarle el truco!
El mejor truco es pensar y entender bien las cosas...asi cuando te suejan problemas nuevos y diferentes seras capaz de mezclar todo lo que sabes y generar una solucion a partir de alli...

Saludos

Instru 10/01/2007 20:00

Re: Buen tutorial de punteros
 
No se, para mi la mejor forma de aprender fue aventandome aun proyecto largo, grande y dificil ya que generalmente necesitas de todo el potencial del lenguaje y ahi vas aprendiedo la eficiencia de codigos al igual que nuevas tecnicas de programacion.

Saludos

marse 11/01/2007 02:43

Re: Buen tutorial de punteros
 
Tengo un ejercicio que es el siguiente código:
#include <stdio.h>
void funcion(int *c, int b, int *a)
{
*c = b + *c;
b = * a + *c;
*a = b * *c;
}
void main(void)
{
int a=1,b=1,c=-2;
funcion(&a,b,&b);
printf("a = %d b = %d c = %d ",a,b,c);
funcion(&c,b,&a);
printf("a = %d b = %d c = %d",a,b,c);
}

y tengo que obtener (sin compilador) lo que imprime. Sé que en el primer caso el resultado es: a=2 b=6 y c=-2 y en el segundo a=24 b=6 y c=4. El tema está en que no sé como llegar a esos resultados (manualmente), comprendo bien de que se tratan los ficheros pero este ejercicio no lo saco. ¿Alguien me puede enseñar un método para sacar las soluciones de este tipo de problemas?
Muchas gracias a todos, os agradezco toda la ayuda. Por cierto muy buenos los tutoriales y web recomendados pero no me solucionan el problema.

PCKing 11/01/2007 03:55

Re: Buen tutorial de punteros
 
Buenas

Yo hace poco empecé con los punteros y voy a tratar de darte una solución al problema que planteas. Si me equivoco por favor haganmelo saber así sigo aprendiendo.

Lo que hice principalemente fue comentarte un poco el programa para que lo entiendas mejor.

Espero sirva

Código:

#include <stdio.h>

void funcion(int *c, int b, int *a)
{
    *c = b + *c;
    b = * a + *c;
    *a = b * *c;
}

int main(void)
{
    int a=1,b=1,c=-2;

    funcion(&a,b,&b);
   
    /*
        *a += b;    como b = 1 -> *a = 2
        b = *b + *a;      b = 3
        *b = b * *a  como b = 3 y *a = 2  ->  *b = 6
       
        Como no se realizan modificaciones en el contenido de c este queda
        con valor -2
       
        No se si ya lo sabías de antes, pero el asterisco adelante de la variable
        es para acceder al contenido de la misma
    */   
   
    printf("a = %d b = %d c = %d ",a,b,c);
   
    /* como %d corresponde a enteros, imprimis el contenido de la variables,
      que como te mostré y vos dijiste son a = 2, b = 6, c = -2 */
   
    funcion(&c,b,&a);
   
    /*
        *c += b;    como b = 6 y *c = -2 -> *c = 4
        b = *a + *c;  como  *a = 2 y *c = 4  ->  b = 6
        *a = b * *c  como b = 6 y *c = 4  ->  *a = 24
    */

    printf("a = %d b = %d c = %d",a,b,c);
   
    /* Mismo concepto que el anterior */

    getchar();

    return 0;
}

PD: Hice alguna mínima modificación en el código para que compile "bien" en el Dev-C++, pero no es nada que cambie el contenido del programa.

Saludos :adios:

marse 11/01/2007 05:45

Re: Buen tutorial de punteros
 
Creo q ya lo entiendo :D Vamos, quiero decir, ahora entiendo xq me salían valores diferentes, eso es xq al decir funcion(&a,b,&b); y funcion(int *c, int b, int *a) en vez del valor de c cuando es *c realmente va *a, b no varía y en vez de *a va *b. ¿es así? Que ilu ya lo entiendo!!!!

_Lucifer_ 11/01/2007 06:17

Re: Buen tutorial de punteros
 
Cita:

Creo q ya lo entiendo :D Vamos, quiero decir, ahora entiendo xq me salían valores diferentes, eso es xq al decir funcion(&a,b,&b); y funcion(int *c, int b, int *a) en vez del valor de c cuando es *c realmente va *a, b no varía y en vez de *a va *b. ¿es así? Que ilu ya lo entiendo!!!!
Tres tristes tigres tragan trigo en un trigal

Jajajajajaja...

Solo toma en cuenta lo siguiente:
Cuando tengas una funcion de este estilo
Cita:

void funcion(int *c, int b, int *a)
Quiere decir que el primer y el tercer parametro almacenaran direcciones de memoria, es decir son punteros.
Cuando invoque la funcion de esta manera:
Cita:

funcion(&pepe, maria, &jose);
Estas pasando la direccion de pepe y jose que seran almacenadas en *c y *a respectivamente, los nombres de las variables realmente no importan asi que
Cita:

funcion(&a, d, &c);
Es completamente valido y quiere decir que pasas las direcciones de c y a que seran almacenadas en *c y *a respectivamente.

Saludos

marse 11/01/2007 06:41

Re: Buen tutorial de punteros
 
GRACIAS!!!Me acabais de ahorrar un monton de trabajo, llevo semanas dandole vueltas al ejercicio y no entendía xq no me saía, pero ya lo entiendo perfectamente... yujuuuu que emosiooon, muchas gracias, espero aprobar IP1 en febrero! jaja, os lo haré saber, MUXISIMAS GRACIAS!!!!!


La zona horaria es GMT -6. Ahora son las 01:13.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.