voila je débute en c++ et j'aurais aimé savoir s'il y'avait une différence majeur entre les adresses et les references ?
Et si differences il y a, quelles sont-elles ?
Version imprimable
voila je débute en c++ et j'aurais aimé savoir s'il y'avait une différence majeur entre les adresses et les references ?
Et si differences il y a, quelles sont-elles ?
Références:
http://c.developpez.com/faq/cpp/?pag...TION_reference
et puis un exemple d'adresse toute simple:
http://c.developpez.com/faq/c/?page=pointeurs
En fait les références c'est des objets contrairement aux adresses qui elles pointent sur des zones mémoires.
J'espère avoir répondu à ta question.
Les notions d'adresse de pointeur et de référence sont trés liées.
L'adresse d'un objet, est un nombre qui corespond à sa position en mémoire.
Les pointeurs et les références sur objet sont des moyens d'accéder directement à un objet, c'est à dire en ne travaillant pas sur une copie mais sur l'objet lui même. Il utilise tout les deux la notion d'adresse, puisqu'il doivent connaitre l'adresse de l'objet pour pouvoir travailler dessus.
La question à laquelle je répondrais donc est plutôt "quelle est la diférence entre un pointeur et une référence".
En fait il y a peu de différence. Seule la syntaxe change.
-----------------------------------------------------------------------------------------------------
Accès a un objet créé statiquement:
Dans ce cas les références permettent une plus grande transparence (on ne voit pas d'adresse).Code:
2
3
4
5
6
7
8
9
10
11
12
---------------------------------------------------------------------------------------------------------
Accès a un objet créé dynamiquement:
On voit ici que l'utilisation des références n'est plus trés pratique.Code:
2
3
4
5
6
7
8
9
---------------------------------------------------------------------------------------------------------
Enfin ne pas confondre:
---------------------------------------------------------------------------------------------------------Code:
2
3
4
5
Ce n'est pas une notion facile à assimiler. C'est pourquoi j'ai aussi répondu à ta question, tu auras deux explications pour le prix d'une. Et peut être d'ailleurs que je n'ai pas tout compris moi même :)
<Sauf erreur de ma part>
Prenons le code suivant :
Dans la pratique, on a l'équivalence :Code:
2
3
La référence permet d'éviter le déréférencement, et donc apporte une meilleure lisibilité.Code:(*pointeur) <=> reference
Je pense que dans ce dernier cas, un compilateur intelligent ne rajoutera pas d'adresse intermédiaire, mais utilisera "reference" comme s'il s'était agit de "i" directement.
Une référence est avant tout un alias : un autre nom pour un objet existant. Suivant les situations, elles pourront ou non être implémentées comme si on avait eu des pointeurs en interne. La FAQ ne suffisait pas ?