Partage
  • Partager sur Facebook
  • Partager sur Twitter

résoudre le problème de la fontion triple

variable static

    1 février 2006 à 18:29:52

    bonjour,
    peut on utiliser la variable static pour résoudre le ci dessous:

    #include <stdio.h>
    #include <stdlib.h>


    long triple(long nombreEntre);

    int main(int argc, char *argv[])
    {
     
     long nombreEntre =0, resultat = 0;
      printf("Entrez un nombre... ");
        scanf("%ld", &nombreEntre);
    resultat = triple(nombreEntre);
        printf("Le triple de ce nombre est %ld\n", resultat   );

     
      system("PAUSE");     
      return 0;
    }

    long triple(long nombre)
    {
        static long resultat = 0; // La variable resultat est créée la première fois que la fonction est appelée

        <couleur nom="rouge">static</couleur> resultat = 3 * nombre;
        return resultat;
    } // La variable resultat n'est PAS supprimée lorsque la fonction est terminée

    Merci
    zerotamsa
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      1 février 2006 à 18:35:34

      Hum c'est un peu confus. La variable statique est faite pour être initialisée avec une expression constante, puis elle ne perd aps sa valeur quand la fonction quitter. L'intérêt est que tu en changes sa valeur en l'augmentant ou la diminuant à chaque fois, sinon si tu la changes d'après un paramètre de la fonction sert à rien.
      • Partager sur Facebook
      • Partager sur Twitter
        1 février 2006 à 19:00:53

        C'est vrai que ça semble illogique, car le mot clé static placé devant une variable sert comme il a été dit à ne pas libérer l'espace mémoire alloué à la variable. Celle-ci garde donc sa valeur lors de la sortie de la fonction.
        • Partager sur Facebook
        • Partager sur Twitter
          1 février 2006 à 20:14:50

          salut,
          j'ai fait tout les moyens pour faire marcher ce code, mais j'ai échoué.
          est ce possible de le faire marcher, ou on se contente uniquement pour la méthode de Matéo qui utilise la methode simplifié de la fonction triple:
          code

          long triple(long nombre)
          {
          return 3*nombre,
          }
          pas de déclaration et pas d'initialisation, c'est la fonction main qui se charge.
          y'atil un moyen pour marcher le code dessous ou non?
          zerotamsa
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            1 février 2006 à 20:24:30

            Ok mais je ne comprends toujours pas pourquoi tu as absolument envie d'une variable statique. Si ça t'amuse :
            long triple (long nombre)
            {
              static long resultat = 0;
              resultat = 3 * nombre;
              return resultat;
            }

            Saches qu'en principe ce code fera exactement la même chose que si la variable était en auto (pas en static en fait). En effet à chaque appel la valeur de resultat va changer en fonction du paramètre donc le static ne sert à rien.
            • Partager sur Facebook
            • Partager sur Twitter

            résoudre le problème de la fontion triple

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown