Passage par reference en c

sami -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
la difference entre le passage par reference et le pointeur
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    Tu peux essayer de faire des phrases, c'est quand même le minimum :-(.
    Accessoirement les références existent en C++ mais pas en C.

    Bonne continuation
    4
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    c'est la même chose
    en revanche tu as le passage par valeur qui est différent

    voici une exemple
    lami20j@debian:~/trash$ cat passage.c
    #include<stdio.h>
    
    void passage_valeur(int N);
    void passage_adresse(int *N);
    
    int main()
    {
            int N=10;
            passage_valeur(N);
            printf("Dans main N = %d\n",N);
            passage_adresse(&N);
            printf("Dans main N = %d\n",N);
            return 0;
    }
    
    void passage_valeur(int N){
            N = 2*N;
            printf("Dans passage_valeur N = %d\n",N);
    }
    
    void passage_adresse(int *N){
            *N = 2 * *N;
            printf("Dans passage_adresse N = %d\n",*N);
    }
    
    lami20j@debian:~/trash$ gcc passage.c
    lami20j@debian:~/trash$ ./a.out
    Dans passage_valeur N = 20
    Dans main N = 10
    Dans passage_adresse N = 20
    Dans main N = 20
    
    3
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    Une référence peut être vue comme un pointeur mais contrairement à un pointeur :
    - elle doit être initialisée
    - les champs de l'objet passé par référence se manipule avec "." et non "->", comme si on avait passé l'objet par recopie
    0