Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pointeurs incompréhension

    14 septembre 2020 à 22:27:14

    Bonjour, je suis entrain d'apprendre le C en suivant donc le cours sur openclassroom et je suis arrivé au chapitre sur les pointeurs.
    J'ai donc le code ci-dessous :

    int age = 10;
    int *pointeurSurAge = &age;
    
    printf("%d", pointeurSurAge);

    Si j'ai bien compris je devrais donc voir affiché ici l'adresse de la variable " age ", cependant si j'écris :

    printf("%d", &pointeurSurAge);

    Je devrais là avoir l'adresse du pointeur " pointeurSurAge" ( d'après le cours de Mathieu Nebra) , or , j’obtiens le même résultat avec les 2 codes.
    Ne sachant pas lequel des deux j'ai mal compris, j'espère trouver ici une réponse

    Merci d'avance


    -
    Edité par TovenMiraud 14 septembre 2020 à 22:27:49

    • Partager sur Facebook
    • Partager sur Twitter
      14 septembre 2020 à 23:22:53

      Apparemment ce sont deux programmes différents que tu fais tourner.

      Aucune conclusion à en tirer.

      Fais ecrire les deux, dans le même programme.

      -
      Edité par michelbillaud 14 septembre 2020 à 23:23:57

      • Partager sur Facebook
      • Partager sur Twitter
        15 septembre 2020 à 2:26:05

        Quelque chose du genre?
        -
        #include <stdio.h>
        int main() {
            int age = 10;
            int *pointeurSurAge = &age;
            int **pointeurSurPtr = &pointeurSurAge;
            printf("%d\n", age);
            printf("%d\n", *pointeurSurAge);
            printf("%d\n", pointeurSurAge);
            printf("%d\n", &pointeurSurAge);
            printf("%d\n", *pointeurSurPtr);
            printf("%d\n", pointeurSurPtr);
            printf("%d\n", &pointeurSurPtr);
        }
        • Partager sur Facebook
        • Partager sur Twitter

        Le Tout est souvent plus grand que la somme de ses parties.

          15 septembre 2020 à 7:26:01

          michelbillaud a écrit:

          Apparemment ce sont deux programmes différents que tu fais tourner.

          Aucune conclusion à en tirer.

          Fais ecrire les deux, dans le même programme.

          -
          Edité par michelbillaud il y a environ 8 heures

          Merci pour ta réponse, effectivement en écrivant les 2 dans le même programme j'ai bien 2 réponses différentes !

          • Partager sur Facebook
          • Partager sur Twitter
            15 septembre 2020 à 12:12:48

            Quand tu fais

            int age = 10;
            int *pointeurSurAge = &age;
             
            printf("%d", &pointeurSurAge);


            Il est possible que le compilateur s'apercoive que  tu ne fais rien de l'adresse contenue dans pointeurSurAge, donc que ce n'est pas la peine de perdre du temps à l'initialiser

            int age = 10;
            int *pointeurSurAge;
             
            printf("%d", pointeurSurAge);

            et que donc qu'il peut aussi virer la variable age qui ne sert à rien

            int *pointeurSurAge;
             
            printf("%d", pointeurSurAge);





            -
            Edité par michelbillaud 15 septembre 2020 à 12:13:08

            • Partager sur Facebook
            • Partager sur Twitter

            Pointeurs incompréhension

            × 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