Je nach Speichermodell und Segment werden Zeiger in drei Typen unterteilt:
ist einer, der innerhalb von 64 KB funktioniert Speicherdaten Segmentbereichszeiger.
Es kann nicht auf Adressen außerhalb dieses Datensegments zugegriffen werden.
Nahzeiger können mithilfe arithmetischer Operatoren für Adressbereiche erhöht oder verringert werden.
Mit dem Schlüsselwort near können wir jeden Zeiger zu einem Near-Zeiger machen.
Die Syntax lautet wie folgt:
<data type> near <pointer definition> <data type> near <function definition>
Die folgende Anweisung deklariert den Near-Zeiger der Variablen s
char near *string;
Das folgende Programm zeigt die Verwendung des Near-Zeigers.
#include<stdio.h> int main(){ int number=50; int near* p; p=&number; printf("%d",sizeof(p)); return 0; }
Die Ausgabe lautet wie folgt: -
2
Es handelt sich um einen Zeiger, der verschiedene Offsets und Segmentadressen des Zeigers speichert.
Es hat Zugriff auf alle 16 Segmente.
Der Adressbereich des Fernzeigers beträgt 0 bis 1 MB.
Wenn der Zeiger erhöht oder verringert wird, ändert sich nur der Offset-Teil.
Die Syntax lautet wie folgt:
<data type> far <pointer definition> <data type> far <function definition>
Die folgende Anweisung deklariert den Fernzeiger der Variablen s
char far *s;
Das folgende Programm zeigt die Verwendung des Fernzeigers.
#include<stdio.h> int main(){ int number=50; int far *p; p=&number; printf("%d",sizeof number); return 0; }
Die Ausgabe ist wie folgt:
4
Es ist ein Zeiger mit ähnlicher Zeigergröße, da es sich bei beiden um 32-Bit-Adressen handelt.
Große Zeiger können erhöht werden, ohne dass sie durch Segmentarbeitsschleifen beeinträchtigt werden.
Das folgende Programm zeigt die Verwendung großer Zeiger.
#include<stdio.h> Int main(){ Char huge *far *ptr; Printf("%d%d%d",sizeof(ptr),sizeof(*ptr),sizeof(**ptr)); Return 0; }
Die Ausgabe ist wie folgt -
4 4 1
Das obige ist der detaillierte Inhalt vonErklären Sie Near-, Far- und Huge-Zeiger in der Sprache C. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!