Quelqu'un peut il m'expliquer ?

julen -  
 wiwi -
Quelqu'un peut il repondre a ces 2 questions ?

Lors de l'execution d'un programme, expliquez la différence entre un passage de parametres par reference et un passage de parametres par valeur.

expliquez la structure et le mécanisme d'une pile d'execution .

merci.

3 réponses

  1. Castor Messages postés 17881 Date d'inscription   Statut Modérateur Dernière intervention   170
     
    salut julen
    deja essaie de ne pas poster tes demandes en double. merci.
    ensuite pour la difference valeur/reference c'est simple:
    si tu passe ta variable par valeur, son contenu est recopie
    donc tu ne peux pas la modifier..
    par exemple si tu as une fonction mafonction(int i) cette fonctionpourra utiliser la valeur de i (par exemple 2) mais ne pourra pas la changer.
    si tu le passe par parametre : mafonction(int i*) alors la si tu modifies la valeurde i dans ta fonction la modification sera effective aussi pour le reste du programme.

    .O No parachute? Wow! This is so cool!
    (_)__
    ... Castor
    0
  2. hchachem
     
    +++le passage par paramettre de la variable a par exple:
    si par exple la valeur de a est 5 avant l appel de la fonction
    a la fin de l execution de la fonction vous aurez la meme valeur qui est 5 meme si la variable 'a' a ete chager au cour de la fction
    +++le passege de reference ou adresse
    la valeur de 'a' change s il y a des instruction a l interieur de la fonction ki agissent sur le contenu de cette variable

    exple

    void fctVal (int a)
    {
    a++;
    printf("a l interieur de fctVal %d",a);
    }
    void fctRef(int &a)
    {
    a++;
    printf("a linterieur de fctRef %d",a);
    }

    void main()
    {
    int b;
    b=3;
    fctVal(a);//affiche a linterieur de fctVal 4
    printf("%d",b);//affiche 3
    fctRef(a);//affiche a linterieur de fctRef 4
    printf("%d",b);//affiche 4

    }
    0
  3. wiwi
     
    bonjour,

    lorsque qu'une fonction est appelee, les parametres de la function sont sauvegardees dans la pile d'execution. En sortie de fonction, les variables entrees en parametre reprennent leur valeur initiale stockee dans la pile.

    1)Lorsqu'une variable valeur est passee en parametre, elle recupere sa valeur initiale une fois sortie de la fonction.

    soit:
    fonction f( int a)
    {
    a++;
    }

    a l'appel de la fonction
    pile[x]=a;

    en sortie de fonction
    a=pile[x];

    2)Lorsqu'une viarable adresse est passee en parametre, la fonction ne modifie pas la valeur de cette variable mais celle de la variable pointee. Ainsi en sortie de fonction, la valeur initiale de de ton parametre est restituee, mais elle n'a jamais ete changee elle-meme...

    soit:
    fontion f2(adresse de a)
    {
    a++;
    }
    appel de la fonction
    pile[x]=adresse de a;
    en sortie de fonction
    adresse de a = pile[x];

    Or l'adresse de a n'a pas bougee mais la valeur de a a bel et bien ete changee !

    C pas tres clair mais c tout ce que je peux faire :D
    0