Introduction
En langage C, les pointeurs peuvent être comparés entre eux à l'aide d'opérateurs relationnels, tels que supérieur à, inférieur à et égal à. Ce lab (atelier) vous montrera comment comparer des pointeurs en langage de programmation C et fournira des exemples pour des pointeurs de même type et de types différents pointant vers le même tableau.
Déclarer des variables pointeur
Commencez par déclarer deux variables pointeur de même type ou de types différents, selon les exigences de votre programme. Dans cet exemple, nous allons déclarer deux pointeurs d'entiers nommés ptrA et ptrB.
int *ptrA, *ptrB;
Affecter une adresse mémoire aux variables pointeur
Ensuite, affectez une adresse mémoire aux variables pointeur en utilisant l'opérateur de déclaration de pointeur (*) et l'opérateur d'adresse (&). Cela peut également être fait en utilisant un transtypage (cast), comme nous l'avons fait dans ces exemples.
ptrA = (int *) 1;
ptrB = (int *) 2;
Comparer des variables pointeur
Comparez les deux variables pointeur en utilisant l'un des opérateurs relationnels. Dans cet exemple, nous utilisons l'opérateur supérieur à (>). Si la condition est vraie, il affichera la déclaration à l'intérieur du bloc if.
if(ptrB > ptrA) {
printf("PtrB is greater than ptrA");
}
Répéter les étapes pour différents types de pointeurs
Répétez les étapes 1 à 3 pour des variables pointeur de différents types pointant vers le même tableau. Dans cet exemple, nous déclarons un pointeur d'entier (ptrA) et un pointeur de type flottant (ptrB), et nous leur assignons des adresses mémoire.
int *ptrA;
float *ptrB;
ptrA = (int *) 1000;
ptrB = (float *) 2000;
Tester la comparaison de pointeurs
Comparez les deux pointeurs en utilisant un opérateur relationnel.
if(ptrB > ptrA) {
printf("PtrB is greater than ptrA");
}
Écrire du code dans le fichier main.c
Écrivez l'ensemble du programme dans le fichier main.c situé dans le répertoire ~/project/.
#include <stdio.h>
int main() {
int *ptrA, *ptrB;
float *ptrC, *ptrD;
ptrA = (int *) 1;
ptrB = (int *) 2;
ptrC = (float *) 100;
ptrD = (float *) 200;
if (ptrB > ptrA) {
printf("ptrB is greater than ptrA\n");
}
if (ptrD > ptrC) {
printf("ptrD is greater than ptrC\n");
}
return 0;
}
Compiler et exécuter le programme
Compilez le programme en utilisant un compilateur C, tel que GCC, et exécutez-le pour tester la comparaison de pointeurs.
Résumé
En programmation C, les pointeurs peuvent être comparés entre eux à l'aide d'opérateurs relationnels. Les exemples de ce laboratoire (lab) montrent comment comparer des pointeurs de même type et de types différents pointant vers le même tableau. Lors de la comparaison de pointeurs, assurez-vous qu'ils pointent vers le même tableau pour obtenir des résultats précis.



