Arithmétique du pointeur C ++

Arithmétique du pointeur C ++

Nous savons que les pointeurs sont des adresses mémoire des variables et sont numériques en général. C'est pourquoi nous pouvons également faire des calculs arithmétiques sur les pointeurs. Ces calculs peuvent être effectués de la même manière que nous sur des valeurs numériques en mathématiques ou en programmation. Par conséquent, nous discuterons de certaines opérations arithmétiques sur les pointeurs de notre guide de tutoriel en utilisant C++. Nous utilisons l'ubuntu 20.04 Système en veillant à ce que le compilateur G ++ y soit configuré. Commençons par la mise en œuvre de l'arithmétique du pointeur dans l'Ubuntu 20.04 Shel de borne système à l'aide d'un raccourci Ctrl + Alt + T utilisé sur son bureau.

Exemple 1:

Commencez le premier exemple de code C ++ pour utiliser les opérateurs arithmétiques «+» sur les pointeurs par création de fichiers. Vous pouvez créer un fichier à bien des égards, mais le plus simple est l'utilisation de l'instruction «Touch». Ainsi, nous avons essayé le mot clé tactile avec le titre d'un fichier à former sur la console et appuyé sur Entrée. Le fichier est créé dans l'ubuntu 20.04 Dossier à domicile.

Maintenant, pour ouvrir ce fichier nouvellement créé, vous pouvez utiliser l'un des éditeurs intégrés fournis avec Ubuntu 20.04 I.e. Vim, éditeur de texte ou éditeur GNU Nano. Nous vous suggérons d'utiliser l'éditeur GNU Nano comme nous l'avons utilisé dans le shell comme démontré à partir de l'image ci-dessous.

Ce fichier «pointeur.CC ”est décembre dans l'éditeur jusqu'à présent. Nous avons inclus le fichier d'en-tête de flux d'entrée-sortie à la première ligne et l'espace de noms standard a été utilisé à la deuxième ligne. Nous avons initialisé une variable entière «V» avec une valeur de 8. À la prochaine ligne consécutive, nous avons initialisé un pointeur de type entier «P». Ce pointeur est l'adresse d'une variable «V» car elle est liée par la variable «V» en utilisant le signe «&». Cela signifie que nous pouvons changer l'adresse d'un mutable à tout moment. Les instructions COUT standard ont été utilisées les unes après les autres. Le premier affiche l'adresse d'origine de la variable «V» enregistrée comme le pointeur «P».

Sur la ligne suivante, l'instruction COUT a incréments l'adresse du pointeur par 1 et l'a affiché. Les deux lignes suivantes ont utilisé le pointeur et incrément sa valeur de 2 et 3. Les valeurs incrémentées ont été affichées avec l'instruction COUT. Le code se termine ici. Enregistrons d'abord le code avant l'exécution. Utilisez Ctrl + S à cet effet. Vous devez quitter l'éditeur GNU Nano pour revenir vers le terminal. Utilisez la clé de raccourci «Ctrl + X» à cet effet. C'était le code C ++ le plus simple pour incrémenter le pointeur à l'aide de l'opérateur +.

Après être revenu au shell, nous devons rendre notre code sans erreur. Le compilateur C ++ est utilisé pour cette persévérance. Le mot-clé du compilateur «G ++» a été utilisé avec le nom d'un fichier à compiller i.e. "aiguille.CC ". La compilation est réussie car vous pouvez voir qu'il ne renvoie rien. Exécutons notre code sans erreur à l'aide du "./un.Commande standard out. Nous avons les 4 adresses différentes pour «V» variable.

Le premier est l'adresse d'origine «P» de la variable «V». Le second est incrémenté de 1, le troisième est incrémenté de la valeur 2 et le dernier est incrémenté de 3. Chaque fois, nous effectuons l'incrément, les deux derniers caractères d'une adresse ont tendance à changer comme indiqué sous.

Exemple 2:

Faisons un autre exemple pour utiliser l'opérateur de décrémentation sur un pointeur. Donc, nous avons consommé le même vieux fichier «pointeur.CC ". L'espace de noms et l'en-tête d'entrée-sortie sont utilisés de la même manière que nous l'avons fait avant. Une autre variable entière constante «S» est initialisée avec une valeur constante de 5. Dans la méthode Main (), nous utilisons un tableau de type entier nommé «V» de taille «S» avec 5 éléments dedans. Le pointeur entier «P» a été déclaré. Le pointeur a été lié au tableau entier «V» en utilisant le signe «&».

La taille sera démarrée à partir de l'adresse S-1. La boucle «For» a été initialisée qui est démarrée à partir de la taille 5 et fonctionne dans l'ordre décroissant en décrémentant à chaque fois. Chaque fois que la boucle «pour» fonctionne, il affiche l'adresse mémoire du numéro d'index itéré par la boucle et la valeur à un index particulier en utilisant l'instruction COUT standard. Le «P» démontre l'adresse d'index, tandis que le * P représente la valeur à cet index particulier. Dans chaque itération, le pointeur a été décrémenté de 1. La boucle se termine ici et la fonction principale.

Compilez d'abord le code avec le compilateur G ++ de la langue C ++. Il fonctionne avec succès sans erreur. L'exécution est effectuée par le «./un.Commande. Nous avons la sortie comme indiqué ci-dessous. Vous pouvez voir, nous avons chaque adresse mémoire pour un index particulier I.e. 5,4,3,2,1 dans l'ordre décroissant des indices. D'un autre côté, nous avons également les valeurs à chaque index particulier chaque fois que la boucle itère dans l'ordre décroissant jusqu'à la dernière valeur.

Exemple 3:

Ayons une nouvelle instance de pointeurs. Dans cet exemple, nous comparerons les adresses du pointeur ainsi que les valeurs qu'ils contiennent. Ainsi, le pointeur de document.CC est maintenant lancé dans l'éditeur GNU Nano. La fonction Main () a été initialisée après l'espace de noms standard et l'en-tête de flux «IO» dans le fichier de code. Il contient deux variables de type de chaîne S1 et S2 avec des valeurs de chaîne complètement différentes i.e. «AQSA» et «Yasin».

Après cela, nous avons initialisé deux variables de pointeur de type de chaîne P1 et P2 délimitées par les deux variables S1 et S2 en utilisant le caractère «&» après le signe «=». Cela signifie que le pointeur P1 est l'adresse des variables S1 et P2 est l'adresse de la variable S2.

La première clause COUT standard est utilisée pour montrer le résultat de comparaison des deux pointeurs I.e. Adresses des deux variables de chaîne. Si les adresses sont les mêmes, elle affichera 1 comme vrai sinon 0 comme faux sur le shell. La deuxième clause COUT standard est utilisée pour afficher le résultat de comparaison des valeurs stockées dans l'adresse du pointeur spécifique. Si les valeurs sont les mêmes, elle reviendra 1, sinon 0. Le programme de comparaison se termine ici.

Compilez d'abord votre code C ++ et exécutez-le. Nous avons 0 à la suite des deux comparaisons I.e. FAUX. Cela signifie que les adresses et valeurs du pointeur à ces adresses ne sont pas les mêmes.

Changeons un peu le code. Ouvrez le même fichier et mettez à jour les valeurs de chaîne. Les mêmes variables de chaîne S1 et S2 ont été initialisées avec les mêmes valeurs I.e. Aqsa. Le reste du code est utilisé inchangé comme nous l'avons fait avant. Enregistrez votre code pour obtenir le résultat mis à jour.

Nous avons 0 comme le résultat de comparaison des adresses de pointeur car les deux variables contiennent différentes adresses de mémoire et 1 comme le résultat de la comparaison de la valeur I.e. mêmes valeurs des deux chaînes.

Conclusion:

Nous avons discuté des opérations arithmétiques effectuées sur les pointeurs. Nous avons utilisé l'incrément et la décrémentation des opérateurs arithmétiques sur des pointeurs. Nous avons également discuté des exemples de bonus pour illustrer le fonctionnement de l'opérateur de comparaison sur deux pointeurs différents.