Passage par reference en c

Bonjour,
la difference entre le passage par reference et le pointeur
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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
    1. Modérateur
      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
      
      1. Modérateur
        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