Source avec explications sur pointeurs pour debutant

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 446 fois - Téléchargée 37 fois

Contenu du snippet

Bonjour à tous.
Cette source est à destination des débutants. Je viens de passer au C++ après des années de prog en VB, et les pointeurs y sont absent. Ce n'est pas de les comprendre qui m'a posé problème, mais de bien les écrires :).

Voila, j'espère que les quelques lignes qui suivent pourront en aider certains.

Source / Exemple :


/* 

Extraits de Cours de c++ (niveau débutant)
< Bien comprendre les pointeurs >
Auteur : cyrianox, 12-2002

Un exemple concret pour comprendre à quoi ça sert :
Imaginons :
int a[1000000000];
Si vous devez passer ce tableau en paramètre à une fonction, vous allez consommer énormément de mémoire
et de temps machine. Un pointeur servira ici à passer en paramètre à la fonction l'adresse mémoire du tableau.
La fonction pourra donc exploiter le tableau sans qu'on ai eu besoin de créer ce tableau dans la portée 
de la fonction. D'ou un gain en efficacité.

Un pointeur se déclare de la manière suivante :
<type de donnée> *<nom de variable>;

'&'   veut dire : "adresse de"

ex:  &j  =  adresse de j

'*'   veut dire : "valeur à l'adresse de"

ex:  *j  =  valeur à l'adresse de j

Ci dessous, un exemple pour comprendre :

  • /
#include <iostream> // nécessaire pour l'affichage sur l'écran using namespace std; // cf. le chapitre sur les espaces de nommage int main(int argc, char* argv[]) { int a[100]; // on déclare le tableau a stockant 1001 entiers (de 0 à 1000) int *j; // on déclare j, pointeur vers des entiers for (int i=0;i<101;i++) { a[i] = i; j = &a[i]; cout << "Adresse memoire : " << j << " stocke la valeur : " << *j << endl; } system("pause"); return 0; }

Conclusion :


La source devrait fonctionner sur tous les compilateurs.

A voir également

Ajouter un commentaire Commentaires
Messages postés
17
Date d'inscription
samedi 9 février 2002
Statut
Membre
Dernière intervention
8 avril 2005

ça c'est bien vrai :)
et ça va être corrigé :)
Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
2
cyrianox "la source est ptet fausse, mais elle marchait très bien."
cyrianox >> C'est normal l'espcae de mémoire qui était après ne devait pas être réservé donc windows ne t'as pas fait d'erreur fatal avec segmentation fault

cyrianox "Le seul avantage du C++ c'est sa puissance."
- Sinon tu le fais tourner comment vb sous linux :)
- La communauté C++ et mille fois plus importante que celle de VB.
- Pour fait tourner un exe en VB il te faut combien de dll ?
- Et l'OpenGl ça marche mieux avec Vb ou C++ ?

cyrianox << "Sinon, un bon programmeur VB peut faire en 1heure une appli VB terriblement plus difficile à faire et à débugger en C++.... enfin, c'est de l'avis d'un débutant en C++ :)))"
Le RAD existe aussi en C++ avec borland C++ builder et encore plein d'autres trucs.

cyrianox >> Tu n'as pas encore tout vu du C++.
Messages postés
17
Date d'inscription
samedi 9 février 2002
Statut
Membre
Dernière intervention
8 avril 2005

la source est ptet fausse, mais elle marchait très bien.

c'est sûr, ce n'est pas parfait, mais c la méthode qui m'a permis de comprendre.

A la question qu'est-ce que je préfère entre C++ et VB... ben c'est difficile à dire.

Le seul avantage du C++ c'est sa puissance.

Sinon, un bon programmeur VB peut faire en 1heure une appli VB terriblement plus difficile à faire et à débugger en C++.... enfin, c'est de l'avis d'un débutant en C++ :)))

Je pense que le choix du langage se fera au coup par coup, selon les applications et le cahier des charges.
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

En C++, "int a[100]" réserve un tableau de 100 entiers indéxés de 0 à 99, ta boucle "for" est donc fausse.
Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
2
Il faut rajouter:
#include <stdlib.h>
car system est déclaré dedans.
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.