Maison  >  Article  >  développement back-end  >  Expliquer les pointeurs Near, Far et Huge en langage C

Expliquer les pointeurs Near, Far et Huge en langage C

WBOY
WBOYavant
2023-09-14 15:13:021523parcourir

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 -

  • pointeur proche
  • pointeur lointain
  • grand pointeur

pointeur proche

  • 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.

Grammaire

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;

Programme

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;
}

Sortie

La sortie est la suivante -

2

Pointeur lointain

  • 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.

Grammaire

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;

Programme

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;
}

Sortie

La sortie est la suivante -

4

Grand pointeur

  • 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.

Programme

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;
}

Sortie

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer