aide pointeur [résolu]

aide pointeur [résolu] - C++ - Programmation

Marsh Posté le 26-01-2019 à 15:55:36    

Bonjour à tous,  
 
J'ai du mal à saisir la correspondance entre l'adresse d'un pointeur et l'adresse d'une variable vers laquelle le pointeur pointe.
Pouvez-vous éclairer ma lanterne svp?
 

Code :
  1. int a=15;              //déclaration d'une variable
  2.     int *ptr=0;          // déclaration d'un pointeur qui ne contient aucune adresse
  3.   ptr=new int;           //allocation d'une adresse au pointeur   
  4.   *ptr=a;                // pointage du pointeur vers la variable a qui a  
  5.     cout<<ptr<<endl;     //adresse de a contenu dans le pointeur
  6.     cout<<*ptr<<endl;    // valeur de a contenu dans l'adresse vers laquelle le pointeur pointe  
  7.     cout<<&ptr<<endl;    //adresse de ptr
  8.     cout<<&a<<endl;      //adresse de la variable a


 
Pourquoi donc &a et ptr n'ont pas la même adresse ?
 
Merci.


Message édité par jean-michel-kevin le 26-01-2019 à 21:22:59
Reply

Marsh Posté le 26-01-2019 à 15:55:36   

Reply

Marsh Posté le 26-01-2019 à 16:05:08    

Parce que a et ptr sont 2 choses bien distinctes, elles occupent 2 endroits différents en mémoire et possèdent donc 2 adresses différentes.

Reply

Marsh Posté le 26-01-2019 à 16:13:09    

Je viens de relire ton code, y'a comme un bug
 

Code :
  1. *ptr=a;                // pointage du pointeur vers la variable a qui a


 
ptr ne pointe pas du tout vers la variable a
 
Si tu veux que ptr pointe vers a il faut faire
 

Code :
  1. ptr = &a



Message édité par Totoche17 le 26-01-2019 à 16:15:22
Reply

Marsh Posté le 26-01-2019 à 16:38:17    

Merci de ta réponse,
 Alors si j'ai bien compris, en délcarant *ptr=a,  
j'ai modifier la valeur du pointeur, sans lui indiquer l'adresse de la variable vers laquelle il pointe?
D'où l'impossiblité d'afficher l'adresse de a en affichant ptr ?

Reply

Marsh Posté le 26-01-2019 à 17:25:49    

Non, au contraire la valeur du pointeur n'est pas modifiée, il pointe toujours vers la même variable.  
 
Faut vraiment que tu revois ton cours sur les pointeurs, c'est pas compliqué une fois qu'on a saisi le truc.

Reply

Marsh Posté le 26-01-2019 à 21:20:45    

Ok c'est clair, merci pour tout

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed