Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème de compréhention avec les structures.

Sujet résolu
    4 décembre 2007 à 11:25:47

    Bonjour,
    je suis en train de lire le cours de c++ sur développez.com et je ne comprend pas quelque chose.

    Voici le code :
    1. struct st1
    2.     {
    3.         int a;
    4.     } variable1 = {2}; // pourquoi on met cette variable? A quoi elle sert? comment l'utilise - t - on?


    merci de votre aide ;)
    • Partager sur Facebook
    • Partager sur Twitter
    :)
    Anonyme
      4 décembre 2007 à 11:29:20

      en fait variable1 est une structure de type st1 et dont le seul élément: a est initialisé à 2.

      on aurait pu aussi érire

      1. struct st1{
      2.    int a;
      3. };
      4. struct st1 variable1={2};


      mais bien que plus propre c'est un peu plus long.
      • Partager sur Facebook
      • Partager sur Twitter
        4 décembre 2007 à 11:39:03

        En faite c'est une sorte de sécurité pour que a ne soit jamais a null?

        Et pour ce code :
        1. typedef struct client
        2. {
        3.     unsigned int Age;
        4.     unsigned int Taille;
        5. } Client;


        C'est quoi la différence avec le premier?
        • Partager sur Facebook
        • Partager sur Twitter
        :)
          4 décembre 2007 à 11:51:12

          Et bien c'est la même chose que :

          1. struct client Client

          • Partager sur Facebook
          • Partager sur Twitter
            4 décembre 2007 à 11:57:12

            Et sa sert a quoi de mettre sa alors?
            Il n'y a aucune valeur d'affecté.
            • Partager sur Facebook
            • Partager sur Twitter
            :)
              4 décembre 2007 à 12:01:33

              non mais ça sera à toi des les initialiser quand tu voudras.

              PS : Est ce que tu sais à quoi sert struct?
              • Partager sur Facebook
              • Partager sur Twitter
                4 décembre 2007 à 12:06:20

                Oui par exemple pour les couleur on fait une structure rgb

                1. typedef struct couleur couleur;
                2. struct couleur {
                3. int r;
                4. int g;
                5. int b;
                6. };
                7. int main(void) {
                8.  couleur noir;
                9.  noir.r = 0;
                10.  noir.g = 0;
                11.  noir.b = 0;
                12.  return 0;
                13. }


                Sauf que moi avant je ne savais pas qu'il fallait mettre une variable entre } ;
                D'ailleur m@theo n'en parle pas du tout dans son cours.
                • Partager sur Facebook
                • Partager sur Twitter
                :)
                  4 décembre 2007 à 13:27:07

                  Ok mais tu n'ai pas obligé de mettre une variable entre } et ;.

                  Je pense que si mathéo ne la pas dit c'est pour ne pas nous perturber.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 décembre 2007 à 13:50:02

                    salut:
                    {} permet d'initialiser d'un coup toutes les variables, c'est pratique mais ce n'est pas explicite.


                    il est beaucoup plus lisible d'utiliser
                    1. NomStructure.Variable1 = truc;
                    2. NomStructure.Variable2 = machin;



                    ensuite on peut concaténer la définition d'un structure et son instanciation, c'est pas super utile c'est pas super lisible mais ca marche.
                    1. struct A{/*contenu de A*/} a;


                    fait la même chose que
                    1. struct A{/*contenu de A*/};
                    2. A a;



                    et si on cumule le tout on peut faire les 2 a la fois:
                    1. struct A{contenu de A} a = {variable1deA, variable2 de A ...}



                    soit avec RGB
                    1. struct RGB{int r,g,b;} noir = {0,0,0};

                    1. struct RGB{int r,g,b;}
                    2. RGB noir = {0,0,0};

                    1. struct RGB{int r,g,b;}
                    2. RGB noir;
                    3. noir.r = 0; noir.g = 0; noir.b = 0;



                    • Partager sur Facebook
                    • Partager sur Twitter

                    problème de compréhention avec les structures.

                    × 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