Ver Mensaje Individual
  #10 (permalink)  
Antiguo 11/01/2007, 03:55
PCKing
 
Fecha de Ingreso: febrero-2006
Mensajes: 49
Antigüedad: 19 años
Puntos: 1
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