begin process at 2012 05 27 15:40:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > DIFFERENCE ENTRE POINTEUR ET REFERENCE PAR UN EXEMPLE...

DIFFERENCE ENTRE POINTEUR ET REFERENCE PAR UN EXEMPLE...


 Information sur la source

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Niveau :Débutant Date de création :21/01/2003 Date de mise à jour :21/01/2003 18:56:16 Vu / téléchargé :13 846 / 132

Auteur : Haldwin

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Voila un petit exemple montrant l'utilisation des references et des pointeurs. On remarque que les references sont plus simples d'utilisation. C'est pourquoi il est conseillé d'utiliser les pointeurs que lorsqu'ils sont vraiment nécessaires.
Si vous avez des remarques, n'hésitez pas à me les soumettre.
Haldwin.
Nb: Evitez les commentaires peu constructifs(ex: c'est nul parske c tout...).  

Source

  • #include <iostream.h>
  • // Structure de test
  • struct essai
  • {
  • int n;
  • float x;
  • };
  • // Prototype des fonctions utilisées
  • void AfficheStruct(essai Essai);
  • void InitParAdresse(essai *pE);
  • void InitParReference(essai &pE);
  • void main(void)
  • {
  • essai ex;
  • ex.n = 10;
  • ex.x = 224.75;
  • AfficheStruct(ex);
  • cout<<endl;
  • // Initialisation à zero des variables de la structure par pointeur
  • InitParAdresse(&ex);
  • AfficheStruct(ex);
  • cout<<" --> Initialisation faite par adresse."<<endl;
  • cout<<endl;
  • ex.n = 10;
  • ex.x = 224.75;
  • AfficheStruct(ex);
  • cout<<endl;
  • // Initialisation à zero des variables de la structure par reference
  • // On voit ici que l'écriture du param de "InitParReference" n'est plus
  • // l'adresse (comme en pointeur) la structure elle-meme. L'ecriture est donc
  • // plus compréhensive et source de moins d'erreur. Le passage par reference
  • // permet co les pointeurs de changer les valeurs de la struct.
  • InitParReference(ex);
  • AfficheStruct(ex);
  • cout<<" --> Initialisation faite par reference."<<endl;
  • cout<<endl;
  • char c;
  • cout<<"Appuyez sur une touche puis sur la touche 'entree' pour quitter."<<endl;
  • cin>>c;
  • }
  • // Affiche les valeurs des variables de la structure
  • void AfficheStruct(essai Essai)
  • {
  • cout<<">--Structure de type essai--<"<<endl;
  • cout<<"Valeur de n: "<<Essai.n<<endl;
  • cout<<"Valeur de x: "<<Essai.x<<endl;
  • }
  • // Initialisation des valeurs des variables de la structure par pointeur
  • void InitParAdresse(essai *pE)
  • {
  • pE->n = 0;
  • pE->x = 0.0;
  • }
  • // Initialisation des valeurs des variables de la structure par reference
  • void InitParReference(essai &pE)
  • {
  • pE.n = 0;
  • pE.x = 0.0;
  • }
#include <iostream.h>


// Structure de test
struct essai
{	
	int n;
	float x;
};

// Prototype des fonctions utilisées
void AfficheStruct(essai Essai);
void InitParAdresse(essai *pE);
void InitParReference(essai &pE);

void main(void)
{
	essai ex;
	ex.n = 10;
	ex.x = 224.75;
	AfficheStruct(ex);
	cout<<endl;

// Initialisation à zero des variables de la structure par pointeur
	InitParAdresse(&ex);
	AfficheStruct(ex);
	cout<<"   --> Initialisation faite par adresse."<<endl;
	cout<<endl;
	
	ex.n = 10;
	ex.x = 224.75;
	AfficheStruct(ex);
	cout<<endl;

// Initialisation à zero des variables de la structure par reference
// On voit ici que l'écriture du param de "InitParReference" n'est plus 
// l'adresse (comme en pointeur) la structure elle-meme. L'ecriture est donc
// plus compréhensive et source de moins d'erreur. Le passage par reference 
// permet co les pointeurs de changer les valeurs de la struct.
	InitParReference(ex);
	AfficheStruct(ex);
	cout<<"   --> Initialisation faite par reference."<<endl;
	cout<<endl;

	
	char c;
	cout<<"Appuyez sur une touche puis sur la touche 'entree' pour quitter."<<endl;
	cin>>c;

}

// Affiche les valeurs des variables de la structure
void AfficheStruct(essai Essai)
{
	cout<<">--Structure de type essai--<"<<endl;
	cout<<"Valeur de n: "<<Essai.n<<endl;
	cout<<"Valeur de x: "<<Essai.x<<endl;
}

// Initialisation des valeurs des variables de la structure par pointeur
void InitParAdresse(essai *pE)
{
	pE->n = 0;
	pE->x = 0.0;
}

// Initialisation des valeurs des variables de la structure par reference
void InitParReference(essai &pE)
{
	pE.n = 0;
	pE.x = 0.0;
}  

 Conclusion

Explications brèves de la difference entre pointeur et reference:

Def pointeur: Un pointeur est une variable qui contient une adresse mémoire et non une valeur. Cette adresse mémoire est en général l'adresse d'une autre variable: le pointeur pointe sur la variable.

Def reference: Une reference est un 'alias' pour une autre variable. La reference doit etre initialisée vers une certaine variable mais ne pourra par la suite plus se référer à une autre variable.

La différence est qu'un pointeur peut etre deplacé, cad qu'on peut lui changé l'adresse vers laquelle il pointe. Alors que la reference ne peut pas se référer à une autre variable si elle est deja référencée sur une certaine variable.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

ALGO GLOUTON BASÉ SUR LA PROGRAMMATION DYNAMIQUE
Source avec Zip Source avec une capture LANCHAT CLIENT/SERVEUR (MULTICLIENTS) (MFC)
Source avec Zip Source avec une capture CTREECTRLFX: CLASSE GÉRANT AUTOMATIQUEMENT UN CHECKBOX À TRO...
Source avec Zip CRÉATION ET CHARGEMENT D'UNE DLL GRAPHIQUE (MFC)
Source avec Zip CONTROLE DE WINAMP A PARTIR DE VOTRE APPLI...

 Sources de la même categorie

LISTER FICHIERS ET RÉPERTOIRES (MULTIPLATEFORME) par christophedlr
UTILISATION DES TYPELIST EN C++ par wyden
Source avec Zip Source avec une capture QCSSCOMPRESSOR par alphaone
AFFICHAGE D'UN TRIANGLE ISOCELE par nabche
Source avec Zip GESTION D'UNE BIBLOTHEQUE par leclerro19

Commentaires et avis

Commentaire de vieuxLion le 21/01/2003 11:57:21

c'est bien mais ne permet pas de comprendre la VRAIE différence entre pointeur et référence : la référence une fois initialisée est FIXE
alors que le pointeur peut se déplacer vers d'autres objets...

cf :
http://www.cppfrance.com/article.aspx?Val=1058

Commentaire de davwart le 21/01/2003 14:10:30

Ton exemple explique parfaitement l'UTILISATION d'un pointerur et d'un objet référencé.
Cependant, tu n'expliques pas la différence. Pourquoi utiliser un pointeur? quels sont les différences de propriétés entre un pointeur et une référence?

Commentaire de Haldwin le 21/01/2003 18:47:16

Merci pour vos commentaires. (Enfin des commentaires constructifs!)
C'est vrai que je n'explique nul part la difference entre pointeurs et references! Mais en fait je ne voulais pas faire un tutoriel mais simplement un exemple permettant de voir comment mettre en application rapidement la notion de reference ou de pointeur. J'ai mis ma source dans "tutoriaux" mais en fait je ne savais pas ou la mettre... car elle est seulement un exemple et non un tutoriel.
Haldwin.

Commentaire de petite_etud le 20/01/2008 03:38:26

merci..assez simple ..tu m'a fai compris ce que mon professeur n'a pa pu faire!..

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales