Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी भाषा में नियर फार विशाल पॉइंटर्स की व्याख्या करें

मेमोरी मॉडल और सेगमेंट के आधार पर, पॉइंटर्स को तीन प्रकारों में वर्गीकृत किया जाता है -

  • पॉइंटर के पास
  • दूर सूचक
  • विशाल सूचक

पॉइंटर के पास

  • यह एक पॉइंटर है जो मेमोरी के 64Kb डेटा सेगमेंट की रेंज में काम करता है।

  • यह उस डेटा खंड से परे पते तक नहीं पहुंच सकता।

  • एक अंकगणितीय ऑपरेटर का उपयोग करके एक निकट सूचक को पता श्रेणी को बढ़ाया या घटाया जा सकता है।

  • निकट कीवर्ड के साथ, हम किसी भी सूचक को निकट सूचक के रूप में बना सकते हैं।

वाक्यविन्यास

वाक्य रचना इस प्रकार है -

<data type> near <pointer definition>
<data type> near <function definition>

निम्नलिखित कथन चर s के लिए निकट सूचक घोषित करता है

char near *string;

कार्यक्रम

निम्न प्रोग्राम नियर पॉइंटर के उपयोग को दर्शाता है।

#include<stdio.h>
int main(){
   int number=50;
   int near* p;
   p=&number;
   printf("%d",sizeof(p));
   return 0;
}

आउटपुट

आउटपुट इस प्रकार है -

2

दूर सूचक

  • यह एक पॉइंटर है जो ऑफसेट और सेगमेंट एड्रेस दोनों को स्टोर करता है जिससे पॉइंटर अलग हो रहा है।

  • यह सभी 16 खंडों तक पहुंच सकता है।

  • एक दूर सूचक पता 0 से 1MB तक होता है।

  • जब सूचक को बढ़ाया या घटाया जाता है, तो केवल ऑफसेट भाग बदल रहा है।

वाक्यविन्यास

सिंटैक्स नीचे दिया गया है -

<data type> far <pointer definition>
<data type> far <function definition>

निम्नलिखित कथन चर s के लिए एक दूर सूचक घोषित करते हैं

char far *s;

कार्यक्रम

निम्न प्रोग्राम दूर सूचक के उपयोग को दर्शाता है।

#include<stdio.h>
int main(){
   int number=50;
   int far *p;
   p=&number;
   printf("%d",sizeof number);
   return 0;
}

आउटपुट

आउटपुट इस प्रकार है -

4

विशाल सूचक

  • यह एक सूचक है जो आकार के मामले में दूर सूचक के समान है, क्योंकि दोनों 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

  1. सी प्रोग्रामिंग भाषा में पॉइंटर्स की सरणी की व्याख्या करें

    पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल के एड्रेस को स्टोर करता है। सुविधाएं सूचक स्मृति स्थान बचाता है। मेमोरी लोकेशन तक सीधी पहुंच के कारण पॉइंटर का निष्पादन समय तेज होता है। पॉइंटर्स की मदद से, मेमोरी को कुशलता से एक्सेस किया जाता है, यानी मेमोरी को गतिशील रूप से आवंटित और डील किया जाता है। पॉइंटर

  1. C भाषा में यूनियन टू पॉइंटर को समझाएं

    एक यूनियन को मेमोरी लोकेशन कहा जाता है, जिसे विभिन्न प्रकार के डेटा के कई वेरिएबल द्वारा साझा किया जाता है। सिंटैक्स वाक्य रचना इस प्रकार है - union uniontag{    datatype member 1;    datatype member 2;    ----    ----    datatype member n; }; उदाह

  1. C भाषा में पॉइंटर एक्सेसिंग की अवधारणा की व्याख्या करें

    पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल के एड्रेस को स्टोर करता है। सूचक घोषणा, आरंभीकरण और पहुंच निम्नलिखित कथन पर विचार करें - int qty = 179; सूचक घोषित करना int *p; p एक पॉइंटर वेरिएबल है जो दूसरे इंटीजर वेरिएबल का पता रखता है। सूचक का प्रारंभ एड्रेस ऑपरेटर (&) का उपयोग पॉइंटर वेरिएबल को इनिशि