Passage par reference en c

Fermé
sami - 27 mai 2008 à 22:42
mamiemando Messages postés 32283 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2023 - 28 mai 2008 à 08:42
Bonjour,
la difference entre le passage par reference et le pointeur

3 réponses

mamiemando Messages postés 32283 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2023 7 572
27 mai 2008 à 22:47
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 566
27 mai 2008 à 22:55
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
mamiemando Messages postés 32283 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2023 7 572
28 mai 2008 à 08:42
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