Bonjour,
Je souhaiterai savoir qu'est-ce qu'un pointeur et qu'elle est son utilité?
Merci d'avance.
Bonjour,
Je souhaiterai savoir qu'est-ce qu'un pointeur et qu'elle est son utilité?
Merci d'avance.
Bonjour,
Tu trouveras plein d'infos ici :
http://chgi.developpez.com/pointeur/
Pour résumer, un pointeur, c'est une variable qui contient l'adresse d'une autre variable.
Ca sert dans plein de situations. Par exemple, pour éviter de passer de très grosses structures en paramètre à une fonction, on passe juste son adresse.
C'est un peu comme si tu donnes l'URL d'un site au lieu de donner un gros fichier .zip avec tous les fichiers qui composent le site en question.
Voilà.
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
ok merci beaucoup
En algorithmique, on parle plutôt de réference.
On peut éventuellement passer directement les paramètres et effectuer un effet de bord dessus.
Par exemple :
Cette fonction n'a de signification que si on effectue un effet de bords sur la variable i. En fait, ici, i est une réference.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Procédure incrementer(Entier i) i <- i+1
L'écriture propre de la procédure est donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Procédure incrementer(Réference Entier i) i <- i+1
Je ne répondrai à aucune question technique en privé
En fait la notion des pointeurs est l'une des notions qui donnent aux langages C et C++ leur grande puissance.
voici un extrait de " comment ça marche " qui parle de cette technique:
Définition d'un pointeur
Un pointeur est une variable contenant l'adresse d'une autre variable d'un type donné. La notion de pointeur fait souvent peur car il s'agit d'une technique de programmation très puissante, permettant de définir des structures dynamiques, c'est-à-dire qui évoluent au cours du temps (par opposition aux tableaux par exemple qui sont des structures de données statiques, dont la taille est figée à la définition).
Comprendre la notion d'adresse
Comme nous l'avons vu, un pointeur est une variable qui permet de stocker une adresse, il est donc nécessaire de comprendre ce qu'est une adresse.
Lorsque l'on exécute un programme, celui-ci est stocké en mémoire, cela signifie que d'une part le code à exécuter est stocké, mais aussi que chaque variable que l'on a défini a une zone de mémoire qui lui est réservée, et la taille de cette zone correspond au type de variable que l'on a déclaré.
En réalité la mémoire est constituée de plein de petites cases de 8 bits (un octet). Une variable, selon son type (donc sa taille), va ainsi occuper une ou plusieurs de ces cases (une variable de type char occupera une seule case, tandis qu'une variable de type long occupera 4 cases consécutives).
Chacune de ces « cases » (appelées blocs) est identifiée par un numéro. Ce numéro s'appelle adresse.
On peut donc accéder à une variable de 2 façons :
1 grâce à son nom
2 grâce à l'adresse du premier bloc alloué à la variable
Il suffit donc de stocker l'adresse de la variable dans un pointeur (il est prévu pour cela) afin de pouvoir accéder à celle-ci (on dit que l'on « pointe vers la variable »).
Comment connaît-on l'adresse d'une variable ?
En réalité vous n'aurez jamais à écrire l'adresse d'une variable, d'autant plus qu'elle change à chaque lancement de programme étant donné que le système d'exploitation alloue les blocs de mémoire qui sont libres, et ceux-ci ne sont pas les mêmes à chaque exécution.
Ainsi, il existe une syntaxe permettant de connaître l'adresse d'une variable, connaissant son nom :
il suffit de faire précéder le nom de la variable par le caractère & (« ET commercial ») pour désigner l'adresse de cette variable :
&Nom_de_la_variable
si tu veux bien maîtriser cette notion :
* http://chgi.developpez.com/pointeur/
Ce n'est qu'en forgeant qu'on devient forgeron.
Soyons juste : le pointeur existe aussi en pascal, delphi, assembler, ... et même dans un de mes vieux fortran ( 77 ou 90 ? ). La présentation qui est faite est donc un peu incorrecte vis-à-vis des autres langages.qui donnent aux langages C et C++ leur grande puissance
On ne peut pas affirmer que la notion de pointeur soit une spécificité à C(++)
et qui le rende par là compétitif!
plus tous les langages objet ou les pointeurs sont bien présent mais cachés .
cedric
j'ai pas dit que les pointeurs sont utilisés en exclusivité dans C et C++.
j'ai dit à la lettre: c'est l'une des notions qui donne an langages c ET c++ leur grande puissance
j'ai cité ces deux langages parceque je suis un fun .c'est tout.
Ce n'est qu'en forgeant qu'on devient forgeron.
ça va finir par un troll ça lol
Le monde du DevLOpPEUR....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3En train, il admire le scrolling du paysage.. Il rédige ses chèques en héxadécimal.. Sa dernière pensée avant de s'endormir est "shutdown completed"...
meuh non
C'est juste un échange éclairé de point de vue loll.
cedric
Je suggérrai de s'initier au langage machine également ( l'assembleur )Envoyé par mademoizel
Si, d'ailleurs, c'est interdit par les lois internationales !Envoyé par cedric49fr2000
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
deja que en tant que informaticien on veux tous nous mettre a l'asile . si en plus vous leur parler de chose pareil !!
Pour etre plus serieux, je suis bien d'accord que au moins en assembleur on voit les adresses et leurs utilités.
Cependant cela ne risque t il pas de faire oublier que les pointeurs peuvent etre aussi tres conceptuel. Dans java, les pointeurs sont sous jacents. Il n'est pas utile d'en connaitre le fonctionnement, avoir la connaissance du concept est utile cependant.
Mais d'un autre coté, on fait encore des pilotes en assembleur pour accélérer les traitements ?
cedric
Sauf cas particuliers, l'assembleur n'est que rarement utilisé.
Dans la plupart des cas, les compilateurs optimisent mieux que nous pourrions le faire.
Edit: Je sens que je vais me faire lyncher par les accros à l'assembleur
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
donc on ne cherche plus à se rapprocher de la machine pour optimiser a coup d'adresse et de registre ?
Compilateur C ou C ++ ?
c'est dingue ca tout ce perd.
cedric
C'est vrai que c'est dommage pour les développeurs... On n'a plus besoin de modifier les applis à chaque fois que la machine changeEnvoyé par cedric49fr2000
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager