Probleme sur les Prointeur en C.

Ahcène78 Messages postés 4 Date d'inscription   Statut Membre -  
mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   -
bonsoir, et merci pour votre aide .

je suis débutant en C, je voudrais avoir un explication sur le résultat d'un mini programme.

#include <stdio.h>
#include <stdlib.h>

void f(int *a,int b)
{

b=b+1;
*a=2;
}

int main()
{
int a,b;
a=1;
b=4;
f(&a,b);

printf("%d %d \n",a,b);
return 0;
}

résultat a=2, b=4
pourquoi vaut a=2 et non 1?
merci pour votre aide
Configuration: Windows Vista
Firefox 2.0.0.14

1 réponse

  1. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    c'est pour te montrer comment modifier une valeur dans une fonction avec les pointeurs

    la tu passe a la fonction l'adresse de a et grace au pointeur tu pourra modifier la valeur qui se trouve a cet adresse si tu n'utilise pas l'adresse et le pointeur la valeur sera modifié dans ta fonction mais pas dans le main d'ailleur tu vois que la valeur de b n'est pas modifié dans le main alors que dans ta fonction tu as b=b+1
    0
    1. Ahcène78 Messages postés 4 Date d'inscription   Statut Membre
       
      bonsoir,
      merci pour ta réponse. j'ai pas fait attention au &a. c est tellement évident !!
      merci bcp
      0
    2. Ahcène78
       
      bonsoir,
      merci pour ta réponse. j'ai pas fait attention au &a. c est tellement évident !!
      merci bcp
      0
      1. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437 > Ahcène78
         
        de rien n'oublie aps de mettre en resolu ;)
        0