Maison > Article > développement back-end > Expliquer les pointeurs Near, Far et Huge en langage C
Selon le modèle et le segment de mémoire, les pointeurs sont divisés en trois types -
fonctionne avec les données de mémoire de 64 Ko pointeur de plage de segments.
Il ne peut pas accéder aux adresses au-delà de ce segment de données.
Les pointeurs proches peuvent être incrémentés ou décrémentés à l'aide d'opérateurs arithmétiques de plage d'adresses.
En utilisant le mot-clé proche, nous pouvons faire de n'importe quel pointeur un pointeur proche.
La syntaxe est la suivante -
<data type> near <pointer definition> <data type> near <function definition>
L'instruction suivante déclare le pointeur proche de la variable s
char near *string;
Le programme suivant montre l'utilisation du pointeur proche.
#include<stdio.h> int main(){ int number=50; int near* p; p=&number; printf("%d",sizeof(p)); return 0; }
La sortie est la suivante -
2
C'est un pointeur qui stocke différents décalages et adresses de segment du pointeur.
Il a accès aux 16 segments.
La plage d'adresses du pointeur lointain est comprise entre 0 et 1 Mo.
Lorsque le pointeur est incrémenté ou décrémenté, seule la partie décalée change.
La syntaxe est la suivante -
<data type> far <pointer definition> <data type> far <function definition>
L'instruction suivante déclare le pointeur lointain de la variable s
char far *s;
Le programme suivant montre l'utilisation du pointeur lointain.
#include<stdio.h> int main(){ int number=50; int far *p; p=&number; printf("%d",sizeof number); return 0; }
La sortie est la suivante -
4
C'est un pointeur de taille similaire en ce qui concerne le pointeur car les deux sont des adresses 32 bits.
Les grands pointeurs peuvent être incrémentés sans être affectés par les boucles de travail des segments.
Le programme suivant montre l'utilisation de grands pointeurs.
#include<stdio.h> Int main(){ Char huge *far *ptr; Printf("%d%d%d",sizeof(ptr),sizeof(*ptr),sizeof(**ptr)); Return 0; }
La sortie est la suivante -
4 4 1
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!