L'essentiel du langage C

Découvrir une autre application avec les pointeurs

Testez gratuitement nos 1257 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Réalisez un petit exercice supplémentaire sur les pointeurs, de façon à vous familiariser avec cette notion supplémentaire.
06:09

Transcription

Nous allons illustrer une fois de plus l'utilisation des pointeurs. Donc, pour cela, je vais déclarer deux variables : variable_1 et 2 qui sont de type différent int et char dans laquelle je mets 2 et 5. Et je veux que chacun de ces pointeurs soit associé à ces variables. Donc du coup, pointeur_1 variable_1 donc forcément du type int du type int. pointeur_2, pointeur_2 du type char char. Ok. Là, je l'initialise. Et je le rappelle, c'est une obligation d'initialiser votre pointeur ; ce n'est vraiment pas une option, en mettant 0 ou en mettant NULL. Les deux sont les mêmes. D'ailleurs, vous voyez define = NULL Donc, en fait, elle appartient bien à la bibliothèque Stdio.h et stdlib.h Après, on peut déclarer à la chaine plusieurs pointeurs qui ne servent à rien, Ceux-là ne serviront pas. Mais pour vous dire que les pointeurs sont en fait des variables comme les autres sauf qu'ils ont un fonctionnement un petit peu particulier. Donc un pointeur que j'initialise à 0, ",", encore_un_autre, toujours un pointeur Hop, et je finis par un ";" Très bien, on a vu comment c'est déclaré, il n'y a pas de souci. Maintenant, nous allons initialiser nos pointeurs. Attention, quand je dis initialiser, enfin c'est initialiser à la déclaration. Ici, nous allons en fait vraiment initialiser, nous allons affecter. Affecter l'adresse de variable_1 à pointeur_1 et affecter l'adresse de variable_2 à pointeur_2 À partir de là, on peut effectuer un affichage, soit en décimale, soit en hexadécimale en mettant %p comme pointeur. Alors, il vous fera un affichage en hexadécimale malgré tout mais en tout petit. Soit en gros hexadécimale comme ici avec un grand X et c'est tout. Alors, une fois que vous avez affecté l'adresse de la variable au pointeur on dit alors que le pointeur est référencé. "Référencé", c'est-à-dire qu'il est lié par l'adresse. Après, on peut déréférencer un pointeur simplement en lui demandant de donner la valeur. La valeur, non pas de l'adresse mais sur le contenu de la variable sur laquelle il pointe. À savoir aussi variable_1, variable_2 Et après, vous pouvez avoir, si vous voulez, l'adresse du pointeur lui-même. Vous voyez, ça fait 3 petites choses à retenir sur le pointeur. Donc lançons tout de suite, voilà, l'exécutable et voyons. Alors, voici l'adresse pointée par le pointeur_1 de la variable_1, Donc, en fait, la variable_1 a pour adresse celle-ci en hexadécimale. Alors vous, à la compilation, forcément, vous avez très certainement autre chose. D'ailleurs, en passant, excusez-moi pour cette petite faute. Voilà, on relance. Ça fera toujours... Voilà, l'erreur est humaine, je suis humain donc voilà. Donc, nous reprenons, ici l'adresse de la variable est celle-ci en hexadécimale. Si vous, vous compilez, forcément, vous allez avoir une autre valeur, Ça va dépendre de votre OS, du type de programme que vous avez dessus, etcetera. On est d'accord. Donc ça, c'est bien l'adresse de la variable parce qu'elle a été affectée au pointeur. Donc le fait de mettre pointeur derrière fait que vous avez l'adresse. Donc l'adresse pointeur_1 Donc là, c'est l'adresse de la variable_1 et la variable_2. Alors, vous voyez que le mettre en décimale ou le mettre en %p ça change le fait que là, ici, c'est de l'hexadécimal et ici du décimal. Bon. Et après, on représente aussi l'adresse pointeur_2 variable_2 en majuscule si on veut. Mais là, c'est pas de chance pour nous, on n'a pas de lettre. Je peux refaire la manip mais cela ne changera strictement rien Donc voilà. mais vous, vous aurez certainement un grand F A, quelque chose qui apparaîtra deci ou delà. Regardons ensuite le contenu de la variable pointée. Donc là, le pointeur est déréférencé. Donc, vous ne passez plus en mode adresse mais contenu de l'adresse pointée. Donc, nous avions mis 2, on a 2 et en affichage, si vous mettez %p vous n'avez pas 5, vous avez toute une série de 0 puisque normalement, c'est fait pour obtenir des adresses et donc, forcément avoir beaucoup de chiffres derrière. Continuons par le dessus, ce sera toujours mieux comme cela. Et après, vous pouvez obtenir l'adresse du pointeur qui n'a strictement rien à voir avec l'adresse des variables. Attention, le pointeur, pour exister, il a besoin d'une adresse donc forcément, il a la sienne et on peut l'avoir. Pour cela, il suffit d'utiliser l'opérateur ET... et vous avez l'adresse du pointeur. Et là, on a même de la chance, vous voyez, pour pouvoir vous montrer que c'est de l'hexadécimal, on a un C. Ouf ! Je me rachète un petit peu en crédibilité. Donc vous voyez que simplement, le %p est équivalent au %X ou x Cela n'a pas d'importance. Voilà, j'espère que ce deuxième exemple vous a permis, une fois de plus, de bien comprendre le fonctionnement des pointeurs.

L'essentiel du langage C

Comprenez les concepts de base du langage C. Développez de simples applications en mode console, afin de comprendre les rouages d’un des langages les plus utilisés au monde.

7h51 (98 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :12 janv. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !