Lé résultat d'un programme C++ que je ne comprends pas...
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Lé résultat d'un programme C++ que je ne comprends pas...



  1. #1
    Dragster_dragster

    Lé résultat d'un programme C++ que je ne comprends pas...


    ------

    Bonjour,

    Je ne comprends pas les résultats apportés par ce code (pourtant c'est si simple !!):

    Code:
    double t;
    double carre (double y){
    t=4;
    return y*y;
    }
    int main (void){
    double x=3;
    t=2;
    double s=carre(x);
    cout << s << "  " << t << endl;
    return 0;
    }
    Le compilateur me donne " 9 4 ", alors que "t=4;" est une variable locale, "t=2;" aussi, donc pourquoi t ne vaut pas 2 au moment du cout, comme c'est le cas pour le programme suivant (qui affiche " 9 2 ") :

    Code:
    double t;
    double carre (double y){
    t=4;
    return y*y;
    }
    int main (void){
    double x=3;
    double s=carre(x);
    t=2;
    cout << s << "  " << t << endl;
    return 0;
    }
    ?

    -----

  2. #2
    fred1599

    Re : Lé résultat d'un programme C++ que je ne comprends pas...

    Normal tu as déclaré en 1ère ligne que t est une variable globale, elle se modifiera globalement dans tous le code dans le sens souhaité. Si tu veux éviter cela, il ne faut pas créer de variables globales à moins d'avoir d'excellentes raisons.

  3. #3
    bisou10

    Re : Lé résultat d'un programme C++ que je ne comprends pas...

    t=4 n'est pas une variable locale, mais globale.

    Une variable locale doit etre declarée DANS le corps de la fonction. La portée est définie par la déclaration (et certains mots-clés comme static modifient cette portée).

  4. #4
    Jack
    Modérateur

    Re : Lé résultat d'un programme C++ que je ne comprends pas...

    C'est bien d'avoir ajouté les balises code, mais sans indentation de celui-ci, ça ne présente plus guère d'intérêt.

    Donc Balises code + indentation

  5. A voir en vidéo sur Futura
  6. #5
    Dragster_dragster

    Re : Lé résultat d'un programme C++ que je ne comprends pas...

    D'accord avec vous tous, mais pourquoi dans le 2e cas a-t-on 9 2, alors que t=4 est toujours une variable globale ?

  7. #6
    Jack
    Modérateur

    Re : Lé résultat d'un programme C++ que je ne comprends pas...

    Citation Envoyé par Dragster_dragster Voir le message
    D'accord avec vous tous, mais pourquoi dans le 2e cas a-t-on 9 2, alors que t=4 est toujours une variable globale ?
    Parce que tu as écrit la ligne:
    t = 2;
    qui remplace le 4 par un 2.

  8. #7
    fred1599

    Re : Lé résultat d'un programme C++ que je ne comprends pas...

    elle se modifiera globalement dans tous le code dans le sens souhaité
    Tout est dit dans la phrase ci-dessus

  9. #8
    JeSuisConscient

    Re : Lé résultat d'un programme C++ que je ne comprends pas...

    Citation Envoyé par fred1599 Voir le message
    Tout est dit dans la phrase ci-dessus
    comment peux t'on programmer alors qu'on l'a pas assimilé les bases du langage ...

Discussions similaires

  1. resultat irm genoux comprends pas
    Par invite510ced44 dans le forum Santé et médecine générale
    Réponses: 3
    Dernier message: 31/03/2011, 22h44
  2. Je n'comprends pas un résultat.
    Par Fract dans le forum Physique
    Réponses: 8
    Dernier message: 05/12/2010, 11h31
  3. Je n'comprends pas un résultat.
    Par Fract dans le forum Électronique
    Réponses: 5
    Dernier message: 05/12/2010, 11h08
  4. Intégrale à calculer, je ne comprends pas le résultat maple...
    Par Vin'Z dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 21/05/2007, 20h17
  5. Résultat aléatoire d'un programme de qques lignes !
    Par COY dans le forum Électronique
    Réponses: 2
    Dernier message: 19/08/2005, 19h16