Pointeurs en C | Achraf Mad | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      1 Introduction

      2:21

    • 2.

      2 Introduction aux pointeurs en C

      12:16

    • 3.

      3 Résoudre un premier exemple pratique

      5:18

    • 4.

      4 Pass par valeur et Pass par adresse en C

      3:28

    • 5.

      L'incrémentation et le décrément de 6 pointeurs

      6:54

    • 6.

      Ajout et soustraction de 7 pointeurs

      7:16

    • 7.

      8 conseils et tableaux

      11:15

    • 8.

      9 pointeurs vides et nulles sauvages à la ligne

      10:42

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

81

apprenants

2

projets

À propos de ce cours

Pointers en C pour systèmes Embedded cours vous apprendra à utiliser des pointeurs en C pour créer de puissants programmes de systèmes embarqués.

Ce que vous apprendrez

  • Ce cours vous apprendra à utiliser des pointeurs en C pour créer de puissants programmes de systèmes embarqués.
  • Vous apprendrez comment les pointeurs peuvent rendre votre code plus efficace et plus concis.
  • Ces leçons sont conçues pour les personnes qui ont une certaine expérience de programmation de systèmes embarqués, mais sont nouvelles pour les pointeurs.
  • Après avoir terminé ce cours, vous serez en mesure d'écrire du code à la fois plus efficace et plus lisible.
  • Vous aurez également accès au code source pour tous les programmes d'exemple couverts dans la classe.
  • Environnement de développement
  • Quels sont les conseils ? Comment fonctionnent-ils ? Pourquoi avons-nous besoin d'eux ?
  • Comment utiliser des pointeurs et l'allocation de la mémoire.
  • PASSEZ PAR VALEUR VS. PASSEZ PAR ADRESSE

Dans ce cours, nous explorons quels sont les pointeurs et comment ils permettent d'optimiser le code de programme.

En fait, vous pouvez créer des programmes sans utiliser de pointeurs. Mais ils accélèrent considérablement le temps d'exécution du programme, ce qui est souvent très important pour travailler avec des microcontrôleurs. Dans ce cours, compte tenu de la complexité de certains types de données et de la valeur des octets, une explication de l'efficacité de la conversion de pointeur sera expliquée.

Les performances du programme peuvent être considérablement accélérées par l'utilisation de pointeurs lors de l'utilisation d'un algorithme. Dans ce cours, vous apprendrez également comment différents types de pointeurs sont utilisés en C.

Ce classis conçu pour enseigner aux élèves à utiliser des pointeurs en C pour la programmation de microcontrôleurs Le cours commence par les bases des pointeurs et passe vers des sujets plus avancés. Les élèves apprendront à utiliser des pointeurs pour créer, lire et écrire des données dans des registres et de la mémoire des microcontrôleurs. Le cours couvre également la façon d'utiliser des pointeurs avec des réseaux et des cordes.

Si vous cherchez un guide complet sur les pointeurs en C, ne cherchez pas plus loin que ce cours. Les pointeurs sont l'un des aspects les plus importants de la programmation C, et ce cours vous apprendra tout ce que vous devez savoir. Vous apprendrez à utiliser des pointeurs pour créer et accéder à des tableaux, des chaînes et des structures. Vous apprendrez également à utiliser des pointeurs pour contrôler le flux de programmes. Le cours est conçu pour les débutants, donc aucune expérience préalable avec des pointeurs n'est requise.

Les sujets suivants :

  • Environnement de développement

  • Quels sont les conseils ? Comment fonctionnent-ils ? Pourquoi avons-nous besoin d'eux ?

  • Comment utiliser des pointeurs et l'allocation de la mémoire.

  • PASSEZ PAR VALEUR VS. PASSEZ PAR ADRESSE

  • OPÉRATIONS SUR DES POINTURES

  • Soustraction et ajout

  • Relations de tableaux avec des pointeurs

  • Pointes à la ligne, sauvages, vides et null.

Rencontrez votre enseignant·e

Teacher Profile Image

Achraf Mad

Creative Engineer

Enseignant·e

Hello, I'm Achraf.

A passionate engineer who loves to share his knowledge with the world

Voir le profil complet

Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. 1 Introduction: Bonjour et bienvenue à ce nouveau cours dans lequel nous allons mâcher des pointeurs en C. Dans ce cours, vous apprendrez ce que sont les pointeurs, comment ils nous permettent d' optimiser le code du programme. Et vous apprendrez comment convertir des types de données complexes en une séquence d'octets. Vous pouvez développer des programmes sans utiliser de pointeurs, mais ils accélèrent considérablement l'exécution du code du programme, ce qui est particulièrement important lorsque vous travaillez avec des microcontrôleurs. Et dans ce cours, nous couvrirons tout cela. La plupart d'entre vous savent que les pointeurs sont l'un des sujets les plus importants. Pour tous les ingénieurs de systèmes embarqués. Quiconque programme en C doit utiliser des pointeurs sinon il échouera derrière. Beaucoup d'entretiens ou de développeurs de systèmes embarqués, les entretiens posent beaucoup de questions sur les pointeurs. Et l'objectif de ce cours est de vous aider à commencer et à apprendre à utiliser pointeurs et les différents types de pointeurs, couvrant de nombreux sujets importants. Nous vous expliquerons tout et nous vous donnerons des exemples pratiques, des devoirs et beaucoup d' autres ressources pour vous aider à maîtriser les pointeurs en C. Maintenant, disons que nous allons ce que vous allez faire apprendre dans ce cours. Vous apprendrez l' adressage indirect à l'aide de pointeurs. Ensuite, nous aborderons différents types de pointeurs. Après cela, nous parlerons de pointeurs, deux types principaux et de pointeurs vers les tableaux. Nous parlerons également de pointeurs vers les fonctions. Pointeurs, opérations de vide, de variables dynamiques et de pointeurs. Ensuite, nous parlerons des types de données, de la conversion à l'aide de pointeurs. Et tous ces sujets seront abordés en détail. Encore une fois, vous prendrez des missions pour que nous soyons certains que vous avez obtenu ce que nous avons expliqué. Nous expliquerons également des exemples pratiques. Nous allons les résoudre ensemble pour vous offrir une expérience pratique. Merci d'avoir regardé cette introduction. On se voit à l'intérieur. 2. 2 Introduction aux conseils en C: Bonjour et bienvenue dans cette nouvelle leçon dans laquelle nous allons parler de pointeurs. Pointer est une variable qui stocke l'adresse mémoire sous forme de valeur h. Les choses ne sont peut-être pas claires à ce stade. Parlons donc d'abord de la syntaxe de création d'un pointeur. Nous parlerons ensuite de cette définition. Comme vous pouvez le voir ici, nous avons syntaxe différente pour définir un pointeur. La première consiste à saisir le type de pointeur, ajouter le signe d'astérisque, puis à saisir le nom du pointeur et à ajouter un point-virgule. La même chose se produit ici, mais au lieu d' écrire l'astérisque près du nom du pointeur, nous l'écrivons près du type de pointeur. La troisième syntaxe est la même que les deux premières, mais nous laissons de l'espace après et avant le signe d'astérisque. Maintenant, en pratique, vous pouvez voir ici que nous avons un pointeur appelé PTR. Le type de ce pointeur est entier. Et pour faire ce pointeur, il faut ajouter le signe astérisque. Maintenant, nous l'ajoutons juste avant le nom du pointeur. Ici, nous l'ajoutons juste après le type de pointeur. Et ici, nous l'ajoutons au milieu entre le nom du pointeur et le type. Maintenant, comme vous pouvez le constater ici, il n'y a aucune différence entre ces trois syntaxes. Tous définissent un pointeur pointant vers un type entier, qui est l' objectif principal d'un pointeur. Maintenant, encore une fois, un pointeur pointe. Il s'agit d'un pointeur qui pointe vers un emplacement en mémoire. Encore une fois, le pointeur est une variable qui stocke l' adresse mémoire comme valeur. Maintenant, pour clarifier les choses, c'est un exemple. L'adresse de l'opérateur est un opérateur unaire représenté par le symbole. Et maintenant, si vous regardez ce symbole ici, c'est ce que l'on appelle l'adresse du signe et. Il indique l'adresse de n'importe quelle variable si elle est précédée du nom de la variable. Pour que cela soit plus clair, si nous écrivons ceci et x, maintenant ce x signifie me donner l'adresse de x. L'adresse de x sera stockée dans PTR. Et dans ce cas, nous avons ce souvenir. Et il s'agit de la variable x. Maintenant, l'adresse de la variable x est 1000. Maintenant, la valeur de x est dix à l'intérieur par mémoire, mais le risque publicitaire de x en mémoire est de 1 000. Donc, pour atteindre ce nombre, qui est de 1 mille, nous devons écrire ceci et x. Donc, PTR ici égalisera 1 mille parce que nous utilisons le non signé, ce qui signifie l'adresse. L'adresse de l'opérateur est donc un opérateur qui ne prend qu'un seul argument. C'est essentiellement le symbole et. Il indique l'adresse de n'importe quelle variable si elle est précédée du nom de la variable. Maintenant. Et x est égal à dix, ce qui est le suivant. Maintenant, x est égal à dix. C'est une phrase correcte. Nous sommes en train de créer une nouvelle variable appelée x. Nous lui donnons une valeur de dix. Il va donc aller dans la mémoire, créer une nouvelle variable appelée x ici, et elle lui donne une valeur de dix. Maintenant, int signe astérisque PTR, nous créons un pointeur de type entier appelé BT off. Et voici ce point ou que nous avons créé VTR. Et le type de données est entier. La dernière étape consiste ajouter une adresse à l'intérieur du pointeur. Pour ce faire, nous utilisons cette ligne, PTR équivaut à l'adresse de x. Maintenant, un signe, encore une fois, il est annulé d'autres. Nous allons trouver l'adresse de x, et nous allons stocker l'adresse de x dans BPR. Donc l'adresse de x ici est de 1 000. Nous stockons donc 1 000 à l'intérieur de BT utilisent cette ligne. Maintenant. Ajouter ceci sur PTR équivaut à quoi ? Pouvez-vous y penser ? Nous l'avons déjà mentionné et sinus est l'adresse de VTR, est maintenant une variable de mémoire. C'est un pointeur, mais il a un emplacement en mémoire. Donc c'est tout PTR et l'autre, donc le magnétoscope est des années 2000, donc t équivaut à 2 mille. Ce signe s'appelle donc l'adresse du sinus. Maintenant, gardez à l'esprit que ce pointeur lui-même est une variable, possède une adresse dans la mémoire de données. Comme n'importe quelle variable. La seule différence est que le pointeur contient l'adresse d'une autre variable. Il ne contient pas de données régulières, il contient une adresse d'une autre variable. Maintenant, effacons l'écran pour que nous puissions le finaliser. Maintenant, nous avons défini ici un entier nommé x et l'initialisons souvent avec une valeur. Ensuite, nous avons défini un pointeur sur int nommé VTR. Après cela, nous avons initialisé PTR avec l'adresse x. De cette façon, nous avons tout prêt. Maintenant, nous pouvons effectuer certaines opérations. abord, nous avons déjà défini notre variable nommée x, dont le type est entier, et nous lui avons donné une valeur de dix. Nous avons défini le pointeur sur n magnétoscope nommé et nous l'avons initialisé. Maintenant, dans ce cas, regardez cette phrase. Nous avons le signe d'astérisque et nous avons le nom du pointeur. Et nous avons ici des égaux. Maintenant, l'opérateur de déréférencement est un opérateur unaire représenté par l'astérisque du symbole. C'est ce qu'on appelle opérateur de déréférencement. Et vous devez mémoriser ces noms que nous avons déjà mentionnés et qui en sont l'adresse. Nous avons maintenant le signe astérisque, qui est l'opérateur de déréférencement. Il s'agit de NOT opérateur, ce qui signifie qu'il ne prend qu'une seule variable. Il fonctionne sur une variable pointeur et permet d' accéder à la variable vers laquelle le pointeur pointe. Maintenant, les choses ne sont peut-être pas claires à ce stade, mais nous l'appelons d électrons parce que cela supprime le besoin de l'adresse. Et il vous permet de traiter directement la variable vers laquelle le pointeur pointe. Expliquons cela par un exemple. Comme vous pouvez le voir ici, nous avons x, nous avons un magnétoscope. Maintenant, PTR a l'adresse x, qui est de 1 mille, et x a une valeur de 50. Nous savons déjà que x a une valeur de dix. Et pour le changer à 50, nous procédons comme suit. La première chose que nous faisons ici est que nous écrivons cet opérateur de déréférencement. Et vous pouvez le voir ici. Ensuite, le nom du pointeur. Maintenant, cela signifie aller à PTR et vérifier l'adresse à l'intérieur, qui est de 1 000. Et accédez à la variable qui a cette adresse. Donc, dans ce cas, le PTR de référence signifie x, car 1 mille pointent vers x ici, qui est cette variable. Et nous disons que nous voulons en stocker 50 à l'intérieur. Nous ne le stockons pas dans PTR. Ptr le fait, c'est ça. Nous le stockons à l'intérieur de cette référence div de PTR, qui est essentiellement la variable x. x est donc égal à 50. C'est pourquoi nous en enlevons dix. Et maintenant, une nouvelle valeur est 50. Maintenant, nettoyons l'ANC et expliquons à nouveau. Maintenant, la valeur x est dix. Lorsque nous utilisons l'opérateur de déréférencement, qui est le signe d'astérisque, nous lui demandons de déréférencer PTR, qui est un pointeur. déréférencement d'un pointeur signifie aller à la variable vers laquelle un pointeur pointe. Et dans ce cas, le pointeur pointe avec cette adresse vers la variable x. Ainsi, en écrivant un astérisque ou un déréférencement PTR, nous lui demandons également d'aller à x et de la rendre égale à 50. Expliquons-le maintenant. Si nous avons une autre variable, disons que nous en avons ici et que nous en avons 3 000 ici, ce qui est l'adresse. Et nous avons un autre PTR ici entre la R1. Et ajoutons l'adresse de y, 3 000. Maintenant, si vous l'avez écrit comme ça. Faisons maintenant la valeur de 55. Ajoutons le signe d'astérisque PT R1 égal, disons 15. Maintenant, cela signifie un déréférencement. Pt R1 signifie aller à la variable ou aller au pointeur appelé BT R1. Récupérez l'adresse de celle-ci et vérifiez la variable vers laquelle cette adresse pointe cette adresse pointe et modifiez sa valeur à 15. La première étape consiste donc à aller au pointeur PT R1, en vérifiant l'adresse. Après avoir vérifié l'adresse, accédez à la variable vers laquelle cette adresse pointe, qui est ici y, et changez la valeur de y à 15. Donc maintenant, y est égal à 15. Maintenant, pour résumer les choses, le non signé signifie l'adresse de PTR. Lorsque nous ajoutons un signe d'astérisque avant le pointeur, nous déréférençons le pointeur. Nous lui donnons donc la possibilité d'accéder à la variable vers laquelle le pointeur pointe. Et c'est l'objectif principal de ce signe de déréférencement. Maintenant, dans la prochaine leçon, nous allons résoudre un exemple pratique selon lequel j'ai besoin que vous essayiez de le résoudre vous-même. J'avais besoin de créer un programme qui définit un entier et de l'initialiser avec eux, puis de l'imprimer. Ensuite, définissez un pointeur pointant vers cet entier et modifiez la valeur de l'entier via le pointeur sur B20. Puis imprimez-le à nouveau. Maintenant, la sortie attendue est x avant que le changement ne soit dix. X après changement est de 20. Assurez-vous de le résoudre avant passer à la leçon suivante. Merci d'avoir regardé cette leçon. 3. 3 Résoudre le premier exemple pratique: Bonjour et bienvenue dans cette nouvelle leçon dans laquelle nous allons résoudre la première question. Vous devez créer un programme qui définit un entier et l'initialiser avec dix, puis l'imprimer. Par la suite. Définissez un pointeur qui pointe vers cet intérieur et modifiez la valeur du n à travers les pointeurs sur B20. Puis imprimez-le à nouveau. La sortie doit être la suivante. X est dix, puis x après l'avoir changé à l'aide du pointeur, il sera 20. Pour résoudre cette question, tous utilisent Visual Studio Code. Accédez au menu Démarrer et à droite code Visual Studio. Le voilà. Maintenant. Vous devez créer un nouveau fichier ou un nouveau projet. Maintenant, fichier, nouveau fichier. Et ici, vous devez cliquer sur sélectionner une langue et choisir C. Maintenant, nous sommes prêts à y aller. La première étape consiste à inclure la bibliothèque de chaînes de sortie d'entrée std .h, qui est la principale bibliothèque de sortie d'entrée standard pour notre programme. Je devrais donc inclure les MST. Ordre à graver. Après cela, vous devrez aller à n. Je veux dire, ce sera notre fonction principale qui sera exécutée, ne prendra rien qui soit vide. Et la première étape consiste à définir un nouvel entier. Donc, x est égal à 0. Ensuite, imprimez f. Demandons à l' utilisateur d'entrer la valeur. Veuillez donc entrer un numéro. Maintenant, nous devons scanner ce numéro en utilisant le scan f. Le nombre que nous allons sortir que je vais numériser sera un nombre décimal. Donc, ici, c'est vrai. Tout cela a été expliqué dans notre cours de programmation C. Et il n'est pas nécessaire d'expliquer à nouveau parce que nous enseignons des pointeurs ici. Maintenant. Nous devons imprimer à nouveau la valeur précédente et la nouvelle valeur. Donc x avant le changement. X avant changement est le pourcentage d. Nous devons maintenant changer x à l'aide de pointeurs. Créons donc un nouveau pointeur. Faisons pointer l'adresse de x. Maintenant, pour modifier la valeur de x, nous allons utiliser l'opérateur de déréférencement, qui est le PTR astérix, et le rendre égal à 20, ce qui est la nouvelle valeur. Et nous allons imprimer la même ligne, qui est la suivante. Mais nous le dirons après le changement. Maintenant, nous avons tout prêt et prêt. Nous pouvons modifier ce x avec le PTR de référence et nous planifierons la même chose. Nous pouvons ajouter ici, cet UTR et l'autre discipline que cela signifie également x, car nous déréférençons l'adresse dans PTR, qui est l'adresse de x, donc c'est la valeur de x. UTR et l'autre discipline que cela signifie également x, car nous déréférençons l'adresse dans PTR, qui est l'adresse de x, donc c'est la valeur de x. , remarquez le code. Vous pouvez simplement le coller sur le Bloc-notes Plus, Plus, comme nous l'avons déjà expliqué, et l'enregistrer. Appelons ça des pointeurs par exemple. Maintenant, nous devons l'enregistrer sous forme de point c. Et nous allons le lancer. Maintenant, ce que montre l'IGCSE, par exemple, Nazi. Après cela, écrivez un fichier EXE de points. Et comme vous pouvez le voir, c'est demander à Dieu, s'il vous plaît entrer un numéro. Disons cinq. Maintenant, x avant le changement est cinq, x après le changement est 20, qui est exactement ce que nous avons fait ici. Nous modifions la valeur de x à l'aide de pointeurs. C'est tout pour cette leçon. Merci d'avoir regardé. 4. 4 Passer par valeur et passer par adresse en C: Bonjour et bienvenue dans cette nouvelle leçon dans laquelle nous allons expliquer le passage par valeur et le passage par adresse. Dans cette leçon, nous allons discuter ces deux onglets de transmission de la valeur et de l'adresse. Le premier type est transmis par valeur. Cela signifie que vous effectuez une copie en mémoire de la valeur réelle des paramètres transmise. Une copie du contenu du paramètre réel. Dans le passé, par adresse ou par référence. Vous effectuez essentiellement une copie en mémoire de l'adresse du paramètre réel. Deux ne font pas de copie de la valeur du paramètre. Nous effectuons une copie en mémoire de l'adresse du paramètre réel. Jetons maintenant un coup d'œil à ces exemples. Encore une fois, le passage par valeur fera une copie en mémoire du paramètre réel alors que la transmission par adresse ou le refinancement fera une copie en mémoire de l'adresse du paramètre réel. Nous sommes donc en train de faire une copie de l'adresse. Ici, nous faisons une copie du paramètre réel. Maintenant, comme vous pouvez le voir dans cet exemple, nous avons ici une fonction et cette fonction est appelée par fonction de valeur. Elle prend un entier x. Maintenant, cette fonction prend un argument par valeur car elle prend une valeur réelle, qui est essentiellement une variable x de type entier. Maintenant, ici, lorsque nous appelons la fonction, nous transmettons la variable en faisant une copie du paramètre réel. Nous ne traitons ici que des valeurs réelles, des paramètres réels, nous ne traitons pas d'adresses. Maintenant, quand il s'agit de passer par adresse ou référence, comme vous pouvez le voir, dans cette fonction, nous avons une fonction appelée par d'autres fonctions et elle prend un pointeur comme entrée. Donc, astérisque entier PTR, c'est un pointeur. Maintenant, cette fonction prend une adresse étrange. L'entrée de cette fonction doit donc être une adresse. Et nous passons la variable z par d'autres ici. Nous ne pouvons pas ajouter car il s' agit essentiellement d'une valeur. Et cette fonction veut une adresse. Nous avons donc ajouté le signe et, ce qui signifie l'adresse de celui-ci. Comme vous pouvez le voir ici. Maintenant, l'adresse de z sera transmise à la fonction d' adresse d'octets. Alors que la valeur de z sera passée par fonction de valeur. Nous faisons donc essentiellement une copie du paramètre réel. Pendant que nous sommes ici en train de faire une copie en mémoire de l'adresse dont l'adresse est l'adresse du paramètre réel. Et c'est la principale différence entre passer par valeur et passer par adresse. Il existe différents cas d'utilisation et vous allez prendre quelques exemples pratiques. Mais c'est tout ce que vous devez savoir pour l' instant sur le passage par valeur et le passage par adresse. 5. 6 conseils d'incrément et de déformation: Bonjour et bienvenue dans cette nouvelle leçon. Nous parlerons des opérations sur des pointeurs. Maintenant. La première opération dont nous allons parler concerne les opérations d' incrément et de décrément. L' opération d'incrémentation incrémente la valeur du pointeur d'une étape. Maintenant, nous n'avons pas dit d'un octet parce que cette étape pourrait être 148 ou n'importe quel nombre d'octets correspond à la taille du point t. Maintenant, si nous écrivons PTR plus plus, si nous supposons que PTR est un pointeur sur un entier, alors quand nous sommes en disant plus, plus, nous allons faire un pas entier, qui est essentiellement de quatre octets. Selon votre compilateur. Le compilateur possède un nombre entier de quatre octets. Cela signifie que chaque incrément ajoutera quatre octets à l'adresse de PTR. En supposant maintenant qu'une adresse PTR est de 1 000, cela signifie que nous sommes maintenant à 1004 en raison de ces quatre octets. Ainsi, chaque incrément ou chaque incrément de pointeur incrémentera la valeur du pointeur d'une étape. Encore une fois, le talon correspond à la taille du pointu sans entier, chaîne ou caractère, ni quel que soit le type de données. En ce qui concerne le décrément, c'est le même scénario. Décrémente la valeur du pointeur d'un pas. C'est écrit comme ça, PTR moins moins. Et si nous supposons que l' entier est de quatre octets, cela signifie qu'il ira quatre pas en arrière, il deviendra 996. Et c'est essentiellement comme ça les incréments et les décréments. Voyons maintenant cela en pratique. Commençons par un exemple simple. Hash inclut stdio.h. Maintenant, int main, vide. Et choisissons la langue qui doit être c. Maintenant, créons une nouvelle variable et x est égal à dix, et créons un pointeur. Maintenant, PTR détiendra l'adresse de x. Et voici trois phrases simples. Maintenant, ce que nous devons faire, c'est d' augmenter ou de diminuer le PTR. Mais il faut d'abord imprimer. allons donc écrire adresse PTR, et nous devons imprimer l' adresse du pointeur. Maintenant, ajoutez P comme spécificateur de format. Et p N représente ici la barre oblique de pointeur n. Et après cela, vous pouvez ajouter l' adresse d'une instance ECS. Vous pouvez ajouter PTR, les deux fonctionnent. Nous allons maintenant ajouter l'adresse de x. Afin d'éviter que l'annonce ne soit correcte, nous devons la rejeter comme nulle. Maintenant, lançons ça pour voir comment les choses vont se passer. Alors ouvrez le dossier contenant, enregistrez d' abord ce fichier. Appelons ça un élément pointeur. Voyons voir. Après cela, combinons ce pointeur. Nous allons d'abord utiliser ls, pointeur GCC point c. Maintenant, trouvons un EXE. Et ici, nous avons l'adresse PTR est 01, F, 1 quatrième. Nous pouvons maintenant exécuter cet incrément et ce décrément pour voir comment les choses vont se passer. Ici, vous pouvez dire PTR plus plus et PTR moins moins. Maintenant, vous remarquerez que si nous le remplacons par PTR, essayons d'exécuter les codes. Comme vous pouvez le constater, nous obtenons les mêmes résultats. Maintenant. Imprimons la même chose après les incréments, puis imprimons la même chose après les deux-points. Maintenant, l' incrément va incrémenter l'adresse de quatre, soit le nombre d' octets et un entier. Ensuite, il le récupérera de quatre en utilisant le décrément. Voyons donc comment les choses vont se passer. J'y retourne. Combinons en utilisant GCC. Allons courir. Le voilà. Maintenant, comme vous pouvez le voir ici, 61 E14. Après avoir incrémenté de quatre octets, c'est 18. Maintenant, j'ai encore décrémenté la valeur, PDR moins moins. Maintenant, il revient à un pour une augmentation de quatre octets, puis diminuée de quatre barres. Allez donc à l'emplacement d'origine. Encore une fois, PTR, augmentent et diminuent selon le type de point. Maintenant, nous pouvons le changer en caractère. Maintenant, si nous revenons ici, essayons de combiner. Maintenant, comme vous pouvez le voir, cet acteur n'est qu'un octet. Maintenant, il est à 17 en l' incrémentant à 18 ans. Et en décrémentant encore craché le 17. Comme vous pouvez le constater, l'incrément et le décrément se produisent au niveau des octets en fonction du type de données. Et c'est l'incrémentation et la décrémentation de l'adresse. Ce n'est pas la valeur. Merci d'avoir regardé cette leçon. Si vous avez des questions, je suis là pour vous aider. 6. 7 conseils d'ajout et de soustraction: Bonjour et bienvenue dans cette nouvelle leçon dans laquelle nous allons parler d' ajout et de soustraction sur les pointeurs. Maintenant, pour soustraire la valeur du pointeur, définissons d'abord un nouveau pointeur. Nous allons donc ajouter x égal à dix. Et cela crée un pointeur. Pointons ce pointeur vers l'adresse de x. Maintenant, comme dans notre exemple précédent, nous les définissons et nous allons effectuer des opérations à ce sujet. La première étape consiste à soustraire du pointeur pour soustraire la valeur du pointeur. Ptr est égal à PTR moins, disons quatre. Parce que nous avons affaire à un entier. Voici l'hypothèse que l' entier est de quatre octets. Mais vous pouvez soustraire n'importe quelle valeur. Maintenant, une fois que vous exécutez cette commande, si nous supposons que l' adresse PTR est 1000, maintenant elle deviendra 960 ou 84, désolé, car nous avons quatre octets et quatre sur quatre est 16 bits. Nous sommes donc retournés en arrière 16 bits. Maintenant, c'est à ce moment qu'il s'agit du niveau des bits. Maintenant, pour rendre les choses plus claires, imprimons. Merci. Donc, imprimez f, adresse, valeur, le pourcentage de couture et de coupe oblique. Nous voulons maintenant imprimer la valeur PTR. Nous devons le jeter. Ensuite, nous pourrons ajouter B2. Maintenant, pour imprimer la valeur après en avoir soustrait quatre. Revenons en arrière et exécutons ça. Alors, économisez. C'est le nom de notre fichier. Nous allons donc copier le nom. Maintenant. Lançons ce code. Maintenant, le compilateur GCC E. Et nous l'avons ici. Comme vous pouvez le voir ici. La valeur avant la soustraction est B14. Maintenant, la valeur après la première soustraction, soustraction est 04. Et ici, nous y sommes retournés. Comme vous pouvez le constater, nous en avons soustrait quatre. Maintenant, sachez exactement combien de pas nous avons reculé. Allons en soustraire un. Maintenant, enregistrez à nouveau ce code, revenez en arrière, combinez-le et exécutez le code. Maintenant, comme vous pouvez le constater, lorsque nous en avons soustrait un, nous sommes passés de 14 à dix. Nous avons reculé quatre étapes. Maintenant, si nous en avons soustrait quatre, nous allons revenir en arrière 16 étapes. Maintenant, une autre chose que vous pouvez faire avec pointeurs est de soustraire le pointeur du pointeur. Créons donc une autre variable. Appelons ça Y. Et créons un autre pointeur. Appelons celui-ci et cet outil. Et modifions les valeurs x et y. Beta1, beta2. Ici, nous avons PTR un, et ici nous avons le PTR C2. Maintenant, ce que nous devons faire, c'est ce qui suit. Nous allons créer int x égal R1 moins PTR à. Nous supposons ici que nous avons deux indications. Et les deux sont des pointeurs vers un entier, qui est de quatre octets. Maintenant, PTR un moins bêta deux renverra le nombre de pas entre eux. Alors, faisons-le. Et la dernière étape consiste à imprimer. Le résultat est le pourcentage d barre oblique n. Et n. Ici, nous devons ajouter x sur x. Maintenant, revenons à la ligne de commande. Maintenant. Nous avons des problèmes ici. X est à nouveau défini, donc nous devons le faire. Maintenant, comme vous pouvez le voir ici, nous avons un point ou un autre. Nous avons des pointeurs à aborder. Et nous avons soustrait le pointeur d' un outil de pointeur de cadre. Et nous avons découvert que l'espace entre eux est ce numéro. Maintenant, lorsqu'il s'agit de l'ajout de pointeurs, nous pouvons ajouter une valeur à un pointeur. Pour ce faire, nous pouvons simplement procéder comme suit. Nous pouvons dire que PTR V1 est égal à V2 R1 et disons quatre. Et nous pouvons l'imprimer à l'aide de la commande print que nous avons tous utilisée. R1, vide B à R1. D'accord ? Maintenant, nous savons déjà que nous avons sur d'autres seront imprimés ici. Voyons donc comment cela affectera le résultat. Maintenant, modifiez EXP. Et nous y voilà. Il s'agit de l'adresse PT R1. Et c'est l' adresse après avoir ajouté quatre à la valeur PT R1. Comme vous pouvez le constater, il passe de 08 à 18 ans. Et c'est de cela que nous parlons. Vous pouvez facilement ajouter ou soustraire des valeurs en fonction du type d'opération. Maintenant, la chose qui n'est pas autorisée, c'est pourquoi il est interdit d'ajouter un pointeur à un pointeur comme celui, comme, de les soustraire ici. Ce n'est pas autorisé, et cela entraînera une erreur du compilateur. Si vous essayez d'ajouter un point à 1 ou deux avec un signe plus, vous obtiendrez une erreur de compilation. Il est donc uniquement permis d'ajouter une valeur au pointeur. Il n'est pas permis d'ajouter deux pointeurs ensemble. Mais vous pouvez soustraire la valeur d'un pointeur, ou vous pouvez soustraire deux pointeurs l'un de l'autre. C'est tout pour cette leçon. Si vous avez des questions veuillez poser la question et si vous faites partie du tableau. 7. 8 conseils et tableaux: Bonjour et bienvenue dans cette nouvelle leçon dans laquelle nous allons parler de tableaux et de fonctions. Maintenant, la première chose à savoir est que le nom du tableau est l'adresse du premier élément qu'il contient. Donc, si nous avons enregistré et ARR, qui est un tableau comportant dix éléments, alors c'est l' adresse de la SE, du premier élément et du tableau qui est l'élément 0. C'est exactement comme dire à risque d'avoir tous 0. Ces deux-là sont identiques. Par conséquent, la définition d'un tableau à l'aide de cette méthode signifie que nous pointons vers l'adresse du premier élément du tableau. Désormais, tous les éléments du tableau sont enregistrés séquentiellement dans la mémoire. Ce qui signifie que si vous avez un pointeur le premier élément du tableau, incrémentation du pointeur fait le ou les pointer vers le deuxième élément et continuez à l' incrémenter pour atteindre le troisième, quatrième, cinquième, etc. Maintenant, une autre bonne chose à savoir est que le fait de traiter le tableau et le fait que les données animales sont l'adresse de leur premier élément nous permet de faire beaucoup de choses à l'aide de tableaux en les utilisant comme pointeurs. Ici encore, ARR est identique à l'adresse 0. Ce qui signifie que si vous transmettez le nom de tableau ARR à la fonction appelée, disons fonction. Donc, fonctionne. Et nous le donnons. Dans ce cas, nous passons l'adresse. Nous ne passons pas de valeur. Ce prototype de fonction doit donc être déclaré comme fonction de suivi void. Et ici, nous devons nous assurer que nous ajoutons un pointeur. Nous ne passons pas par valeur. Nous passons la tarte Alice, même si nous écrivons, nous n'écrivons rien qui indique qu'il s'agit d'un pointeur. Mais comme nous l'avons déjà mentionné, c'est le nom de notre tableau. Et le nom du tableau correspond essentiellement l'adresse du premier élément du tableau. Et cela arrive beaucoup, une question de QCM et des entretiens et dans de nombreux scénarios différents. Maintenant, dans la fonction, lorsque nous voulons déréférencer PTR, qui est le pointeur. Cela signifie que nous accédons au premier élément du tableau. Et si nous l'avons fait, nous avons augmenté le PTR d'un. Ensuite, nous accédons au deuxième élément de ce tableau. B à R. Two est le troisième élément, et ainsi de suite. Vous devez vous assurer de garder ces notes à l'esprit lorsque vous traitez des tableaux à l'intérieur de C. Parce que les tableaux ressemblent beaucoup à des pointeurs, et la compréhension des pointeurs permettra de traiter le tableau sont beaucoup plus faciles à accomplir. Maintenant, une autre remarque importante est que TR en indice et opérateur de déréférencement lorsqu'il s'agit pointeurs et de tableaux. Maintenant, l'opérateur en indice, qui est ces deux signes, a été utilisé avec des tableaux lorsque nous définissons un nouveau tableau. Il peut également être utilisé avec des pointeurs. Disons donc que nous avons un pointeur. Commentons donc. OK. Disons que nous avons un pointeur, PTR. Maintenant, quand on dit PTR 0, en utilisant cet opérateur d'indice, cela signifie la même chose que dire, de beaux détails de danse. Ces deux-là sont identiques. Nous appelons le premier élément ou la première adresse du pointeur. Maintenant, lorsque nous voulons accéder à la deuxième adresse après l'adresse du pointeur, nous pouvons simplement écrire PTR une. Et puis, dans ce cas, nous accédons l'adresse à côté de cette première adresse PTR. Et c'est la même chose que maintenant PTR un ici est la même chose que le déréférencement PTR blas un. Et le PTR dix, par exemple, revient à déréférencer le PTR qui en avait perdu dix. Et c'est là le point principal ici. Nous pouvons utiliser les deux indices. Opérateur avec pointeurs, tout comme les tableaux pour atteindre ou trouver un élément exact. Maintenant, pour rendre les choses encore plus claires, pourquoi pas ? Nous essayons cela avec un exemple pratique. Enlevons tout ça. Maintenant. Tout d'abord, je vais définir une fonction. Et comme la plupart d'entre vous le savent, pour définir une fonction, nous devons d'abord appeler le prototype ou initier un prototype. Ensuite, nous devons implémenter la fonction, l'implémentation de la fonction. Ensuite, nous devons l'appeler. Commençons donc par le prototype. Disons que c'est amusant. Et ici et un astérisque PTR. Cette fonction prendra donc PTR ou pointeur comme entrée et ne renvoie rien. Maintenant, trouvons l'implémentation de la fonction. Retirez ceci, ajoutez deux accolades bouclées. Ici. Nous devons ajouter une boucle for. À l'intérieur de cette boucle pour la boucle va passer de 0 à, disons, dix je plus plus. Et ici, nous devons ajouter print f. et ici, nous devons imprimer les valeurs. Et nous serions trop durs. Mais au lieu de combattre seul PTR, nous utiliserons le TR en indice et nous ajouterons tout comme avec les tableaux. Après cela, nous pouvons appeler la fonction. Maintenant, voici l'astuce. Lorsque nous appelons la fonction, nous ne passons pas, disons une valeur, nous passons une adresse car, comme vous pouvez le constater dans l'implémentation de la fonction, nous recevons un pointeur. Créons maintenant un tableau et ARR puis égaux, et donnons-lui dix valeurs. Donc 12345678910. Maintenant, pour transmettre une adresse à cette fonction, nous pouvons le faire en utilisant le tableau. Comme nous l'avons déjà mentionné. Nous avons déjà mentionné que le tableau ou le tableau de dix est fondamentalement la même chose que l'appel du premier élément à l'intérieur de ce tableau. Donc, pour appeler l'adresse du premier élément, nous devons la transmettre en utilisant ARR sans rien écrire d'autre. Maintenant, cela permettra de s'assurer que le funk recevra l'adresse du premier élément. Et cela augmentera cette adresse d' une en utilisant un indice PTR ici. Il va donc passer du premier élément au dernier élément et le verra en action. Sauvons ça et revenons en arrière. Maintenant, les baies GCC, les pointeurs. Voyons voir. Maintenant, comme vous pouvez le constater, nous avons un problème ici, que je n'ai pas été défini. Définissons-le donc. Une fois encore. Maintenant. Comme vous pouvez le constater, nous venons d' imprimer le tableau sans avoir à transmettre la valeur de ce tableau. 12345678910. Et nous ne passons l'adresse du premier élément de ce tableau. Nous utilisons l'opérateur d'indice de pointeur pour parcourir ce tableau en passant simplement d'une adresse à l'autre, à l'autre en augmentant une, le PTR utilisant ce diesel ou l'opérateur d'indice. Je sais que les choses peuvent être un peu déroutantes à ce stade, mais avec cet exemple, vous devez revenir rapidement sur cet exemple. Essayez de regarder cette leçon plus d'une fois afin de digérer les informations qu'elle contient. Faisons maintenant un bref résumé. Le nom du tableau correspond l'adresse de son premier élément. Donc, si nous avons ce tableau , ARR est l' adresse du tableau 0. Maintenant, si vous transmettez le nom du tableau ou similaire dans ce cas à cette fonction, vous transmettez l'adresse à la fin. La fonction. Le prototype doit être déclaré avec un pointeur en entrée. Maintenant, à l'intérieur de la fonction func, lorsque nous déréférençons PTR , nous accédons au premier élément du tableau. Et nous pouvons accéder au premier élément en écrivant PDR, dernier pour accéder au second élément. Ou nous pouvons simplement utiliser PTR. Et ici, nous utilisons un indice ou pour I. Et nous commençons par le premier élément abordé. Ensuite, le deuxième élément, le troisième élément ajoute. Et je dis ici que je le ferais simplement, parce que nous avons affaire à des adresses, nous ne traitons pas de valeurs, parce que nous venons de recevoir l'adresse du premier élément et nous sommes en boucle à travers les adresses. Et nous imprimons la valeur que ces adresses pointent. C'est ça. Ce n'est pas un exemple facile, je sais. Mais encore une fois, les opérateurs ou disons que les pointeurs ne sont pas une chose facile à apprendre. C'est pourquoi vous devez regarder cette leçon plus d' une fois afin de digérer les informations qu'elle contient. Si vous avez des questions ou si quelque chose n'est pas clair dans cette leçon, demandez à la mandibule, je serai ravi de vous aider. Merci d'avoir regardé. 8. 9 conseils vides et nul: Bonjour et bienvenue dans cette nouvelle leçon dans laquelle nous allons parler de pointeur suspendu et de pointeurs sauvages. Un pointeur suspendu pointe vers une adresse mémoire qui contenait autrefois une valeur. Étant donné que l'adresse qu'il pointe n'est plus conservée, son utilisation aboutira à un résultat attendu. Donc, afin de voir cela en action. Maintenant, ici, la première étape consiste à créer un pointeur. Donc, un Astérix PTR. Maintenant, ce que nous devons faire, c'est d'utiliser la fonction malloc. Cette fonction malloc renverra nulle. Nous devons donc passer en astérisque entier, qui est le pointeur sur entier pour convertir le pointeur vide en pointeur entier. Alors revenez ici et écrivez un entier, qui est essentiellement un pointeur entier. Continuez maintenant avec le modèle et nous devons appeler la taille de la fonction. Et nous allons résoudre la taille de l'entier à l'intérieur ici. Après cela, nous créerons une variable, appellerons une variable et la rendrons égale à 560. Ensuite, nous devons faire le point ou les points à l'adresse d'un , puis nous utiliserons cette fonction libre. La fonction va simplement délocaliser la mémoire. C'est vrai, soyez PTR. C'est ça. Maintenant, nous avons libéré ce pointeur. Nous avons déjà mentionné que le pointeur suspendu pointe vers une adresse mémoire utilisée pour contenir la variable. Comme l'adresse qu'il pointe n'est plus réservée, son utilisation entraînera des résultats inattendus. Maintenant, pour vous montrer le résultat inattendu, nous pouvons procéder comme suit. Nous avons procédé à l'attribution du PTR. Nous pouvons donc écrire un PTR égal à cinq pour en stocker cinq dans ce magnétoscope de déréférencement, qui est un. Et la dernière étape consiste à imprimer. Donc imprimer f. Et ici, nous utiliserons pourcentage d pour planifier la référence du PTR. Maintenant, sauvegardons le code. Et ici, nous testons le pointeur suspendu. Alors revenez en arrière, CLS, GCC. Ok, maintenant vous voyez des pointeurs suspendus. Maintenant, nous avons un problème. Nous avons oublié d'inclure un CD en direct. Nous allons donc l'inclure. J'ai sauvegardé le code et revenez en arrière. Une fois encore. Nous y voilà. Comme vous pouvez le voir ici, nous avons compilé ce code. Maintenant, lançons un EXE. Et comme vous pouvez le voir, il clignote. Maintenant, nous n'avons rien reçu. Il aurait dû imprimer ces différents fronts du PTR. Mais comme nous l'avons déjà mentionné, nous avons décalé le PTR. Il s'agit donc d'un pointeur suspendu et son utilisation après l'allocation entraînera des résultats inattendus. C'est ce qu'est un pointeur suspendu. Encore une fois, un pointeur suspendu est un pointeur qui pointe vers la suppression ou les objets alloués. Et vous devez vous assurer que vous ne retracez pas de tels scénarios. Et essayez de les éviter. Essayez de ne pas jouer avec des pointeurs. Ils les attribuent ou les suppriment sans savoir ce que vous faites. Maintenant, le deuxième type de pointeurs est celui des pointeurs sauvages. Maintenant, commentons cette partie. Tandis que le pointeur est un pointeur utilisé avant l'initialisation. Un exemple de cela est le PTR de fin. Si nous utilisons l'instruction print f et essayons d' imprimer le PTR à l'aide du PTR de déréférencement. Nous n'avons pas encore initialisé le PTR avec une adresse. C'est donc ce qu'on appelle un pointeur de temps. Maintenant, enregistrez vos codes, revenez en arrière et combinez, puis lancez. Comme vous pouvez le constater, encore une fois, un résultat inattendu, car c'est notre pointeur. Nous n'avons pas initialisé ce pointeur. Et c'est pourquoi nous sommes confrontés à cela. Maintenant. Aucune flèche n'a été dessinée, mais nous n'avons reçu aucun résultat car. Ce pointeur n'a pas été initialisé au début. Maintenant, comment transformer un pointeur valide en un autre ? Alors, pendant le pointeur, c'est facile. Comme vous pouvez le constater, nous avons déjà créé le pointeur, nous devons donc le pointer vers quelque chose. Nous pouvons l'initialiser en créant simplement un autre entier, appelant, en lui attribuant une valeur de dix. Ensuite, nous dirons que PTR sera égal à l'adresse de x. C'est tout. Et maintenant, nous pouvons réexécuter ce code. Comme vous pouvez le voir, nous en avons obtenu cinq, ce qui est la valeur de x. Et maintenant ce n'est pas un pointeur sauvage. Nous avons donc dû initialiser le pointeur pour qu'il ne soit pas un pointeur sauvage. Et c'est essentiellement comme ça que ça se passe. Commentons donc cette partie et parlons d' un autre type de pointeurs, qui est un pointeur nul. Maintenant, pour nous assurer que nous n'avons pas notre point de terminaison ou que nous pouvons initialiser un pointeur avec analogie, ce qui en fait un pointeur nul. Le moyen le plus simple de le faire est de copier simplement ce PTR asic final, qui est l' initialisation du pointeur. Et ensuite, vous comptez les bonnes connaissances. C'est ça. C'est ce qu'on appelle un pointeur nul. Maintenant, nous pouvons également imprimer ce pointeur. Mains. Vous pouvez voir maintenant que nous jouons, imprimons, mais il n'imprime rien, car il s'agit d'un pointeur nul et d'un pointeur vide. pointeur Null pointe sur rien ou sur une adresse mémoire à laquelle les utilisateurs ne peuvent pas accéder. Donc, dans ce cas, c'est ce qu'on appelle un vieux pointeur. Appelons donc ce vin. Appelons cela suspendu, et appelons ce pointeur nul. Maintenant, un autre type de pointeur est le pointeur de vide. Un pointeur vide peut être utilisé pour pointer vers une variable de n'importe quel type de données. Il peut être réutilisé pour pointer vers n'importe quel type de données que nous voulons. Et il est facilement déclaré en écrivant un point d'astérite vide ou PTR est égal à nul. C'est ce qu'on appelle un pointeur de vide, car ils sont de nature très générale, ils sont également connus sous le nom de pointeurs génériques. Grâce à leur flexibilité, les pointeurs de vide entraînent également certaines contraintes. Les pointeurs de vide ne peuvent pas être déréférencés comme n'importe quel autre pointeur. Maintenant, si vous essayez de déréférencer un pointeur de vide, vous serez confronté à une erreur. Si vous souhaitez effectuer des opérations arithmétiques sur des pointeurs de vide, vous devez taper ces pointeurs. Maintenant, le typecasting est fondamentalement un autre sujet et nous n' allons pas le couvrir ici. Mais vous devez le typer si vous voulez l'utiliser et des opérations arithmétiques, annuler les pointeurs des grandes fonctions de bibliothèque Hughes et C telles que malloc et calloc, qui allouent de façon spectaculaire la mémoire a renvoyé des pointeurs de vide. Il y a aussi la source de teinte et la fonction de tri intégrée en C qui a une fonction comme argument, qui prend elle-même des pointeurs de vide comme argument. Maintenant, ils viennent surtout le pointeur vide, le pointeur nul, le pointeur sauvage et le pointeur suspendu viennent généralement entrevue et les questions du QCM. Vous devez donc vous assurer que toutes ces inflammations sont écrites dans un carnet de ces inflammations sont écrites dans notes afin de pouvoir les examiner quand vous en avez besoin. Et vous n'avez pas à les mémoriser tous, mais vous devez savoir exactement ce que chacun d'entre eux fait. Maintenant, procédons à une révision rapide. Un pointeur suspendu. Le premier est un pointeur qui pointe vers le supprimer ou l'objet alloué. Le pointeur sauvage, qui est le second, est n'importe quel point ou utilisé avant l'initialisation. Maintenant, pour que ce n'est pas un pointeur sauvage, nous pouvons le faire en utilisant simplement le pointeur nul. Et le dernier de notre liste s'appelle le pointeur vide, qui est un pointeur qui peut être utilisé pour pointer vers une variable de n'importe quel type de données. Il peut également être utilisé pour pointer vers n'importe quel type de données que nous voulons utiliser. Il est déclaré simplement en tapant vide avant le nom du pointeur et le signe astérix et en lui donnant une valeur nulle. C'est tout pour cette leçon. Merci d'avoir regardé.