Pointeur en C

Résolu
serge -  
 serge -
Bonjour,
si je déclare un pointeur comme ceci int *pA, alors :

printf *pA affiche l'adresse de l'entier sur lequel pointe pA
printf &pA affiche l'adresse du pointeur pA
printf pA affiche quelle valeur svp, celle de l'entier sur lequel pointe pA,?

merci
Configuration: Linux
Mozilla 1.9.0.15

6 réponses

  1. Zestyr Messages postés 503 Statut Membre 52
     
    int a = 10;
    int *pA = &a;
    printf("adresse de a : %d , valeur de a : %d , adresse du pointeur sur a : %d", pA, *pA, &pA);


    Et ça ?

    Cordialement Zestyr
    1
    1. serge
       
      et bien non ça me perturbe car je ne veux absolument pas d'exemple avec int *pA = &variable.

      Je lis dans mon livre que int *pA contient une adresse et tu écris que *pA contient une valeur, je ne comprends plus, je souhaite raisonner sur mon premier exemple s'il te plait...
      0
  2. Zestyr Messages postés 503 Statut Membre 52
     
    Négatif
    0
    1. serge
       
      ça ne répond pas à ma question...
      0
  3. le père
     
    Bonjour

    Je lis dans mon livre que int *pA contient une adresse Ça m'étonnerait que ton livre dise ça tel que tu l'écris. C'est peut-être ce que tu as cru comprendre, mais je doute que ce soit écrit.
    int * pA ne contient rien du tout. C'est une déclaration. La variable, c'est pA. pA contient une adresse à condition d'avoir été initialisé, sinon pA contient n'importe quoi, comme toute autre variable. Et *pA contient une valeur, à condition que pA contienne une adresse valide.
    Si tu ne veux absolument pas de int *pA = &a; il FAUT quand même que tu mettes d'une manière ou d'une autre une adresse correcte dans pA. pA=&b par exemple (hihi!) ou un malloc...
    0
  4. Utilisateur anonyme
     
    Bonjour,

    Pour se servir d'un pointeur, il faut entrer l'adresse d'une autre variable, avec &.
    & sert donc à obtenir l'adresse d'un variable, mais d'un pointeur aussi.

    donc

    *pa = valeur de la variable sur laquelle pointe pa.
    pa = adresse de la variable sur laquelle pointe pa
    &pa = adresse du pointeur lui même !
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    autre petite remarque, pour l'affichage avec printf d'une adresse, il faudrait plutôt utiliser "%p" que "%d".
    Cordialement.
    0
  7. Zestyr Messages postés 503 Statut Membre 52
     
    Ca dépend le format d'afichage désiré ! de toute façon ça 'a aucune importance, ce qui compte est que pA contiennent l'adresse de a après quelle fasse 1 ou 10 010 ou 271a on s'en fou !

    Aussi je voulais insister sur le fait qu'un pointeur n'est en fait qu'une variable presque comme les autres.

    edit:
    A oui aussi:

    Et bien non ça me perturbe car je ne veux absolument pas d'exemple avec int *pA = &variable. 

    On peut déclarer et initialiser un pointeur de deux façons:

    int *pA = &a; 


    ou

    int *pA = NULL; 
    pA = &a;


    C'est vrai que la première méthode peut prêter à confusion, la deuxième montre bien ce qu'est un pointeur:
    D'abord on déclare le pointeur sur a comme n'importe qu'elle variable (à une * près) (la déclarer a NULL n'est pas obligatoire mais conseiller)
    Puis on lui affecte l'adresse de a comme valeur.
    C'est donc juste une variable qui stock une adresse. Ce qui change est la manière de l'utiliser!

    Cordialement
    0
    1. serge
       
      merci pour votre aide
      0