C言語でNear、Far、Hugeポインタを説明する

WBOY
リリース: 2023-09-14 15:13:02
転載
1444 人が閲覧しました

C言語でNear、Far、Hugeポインタを説明する

#メモリ モデルとセグメントに基づいて、ポインタは 3 つのタイプに分類されます。

    #Near ポインタ
  • Far ポインタ
  • Large pointer
Near pointer

  • は、64Kb のメモリ データ セグメント範囲内で動作するポインターです。

  • #このデータ セグメントを超えるアドレスにはアクセスできません。
  • ニア ポインタは、アドレス範囲の算術演算子を使用してインクリメントまたはデクリメントできます。
  • キーワードnearを使用すると、任意のポインタをnearポインタに設定できます。
  • 文法

構文は次のとおりです。

<data type> near <pointer definition>
<data type> near <function definition>
ログイン後にコピー

次のステートメントは、変数 s

char near *string;
ログイン後にコピー

Program のニア ポインタを宣言します。

次のプログラムは、ニア ポインターの使用法を示しています。

#include<stdio.h>
int main(){
   int number=50;
   int near* p;
   p=&number;
   printf("%d",sizeof(p));
   return 0;
}
ログイン後にコピー

出力

出力は次のとおりです-

2
ログイン後にコピー

Far pointer

    これはポインタです。異なるポインタ オフセットとセグメント アドレスを格納します。
  • 16 セグメントすべてにアクセスできます。 < li>

    far ポインタのアドレス範囲は 0 ~ 1MB です。
  • ポインタをインクリメントまたはデクリメントすると、オフセット部分のみが変化します。
  • 文法

構文は次のとおりです。

<data type> far <pointer definition>
<data type> far <function definition>
ログイン後にコピー

次のステートメントは、変数 s

char far *s;
ログイン後にコピー

Program の far ポインタを宣言します。

次のプログラムは、far ポインターの使用法を示しています。

#include<stdio.h>
int main(){
   int number=50;
   int far *p;
   p=&number;
   printf("%d",sizeof number);
   return 0;
}
ログイン後にコピー

出力

出力は次のとおりです。 -

4
ログイン後にコピー

大きなポインタ

    これは、次のようなサイズです。 far ポインタ ポインタのそれ。両方とも 32 ビット アドレスであるため。
  • ラージ ポインタは、セグメント ワーク ループの影響を受けることなくインクリメントできます。
  • 手順

次のプログラムは、ラージ ポインターの使用方法を示しています。

#include<stdio.h>
Int main(){
   Char huge *far *ptr;
   Printf("%d%d%d",sizeof(ptr),sizeof(*ptr),sizeof(**ptr));
   Return 0;
}
ログイン後にコピー

出力

出力は次のとおりです -

4 4 1
ログイン後にコピー

以上がC言語でNear、Far、Hugeポインタを説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!