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

सी भाषा में पॉइंटर्स और एक-आयामी सरणी की व्याख्या करें

पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल के एड्रेस को स्टोर करता है।

सुविधाएं

पॉइंटर की विशेषताओं को नीचे समझाया गया है -

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

सूचक घोषणा, आरंभीकरण और पहुंच

निम्नलिखित कथन पर विचार करें -

int qty = 179;

मेमोरी में, वेरिएबल को इस प्रकार दर्शाया जा सकता है -

सी भाषा में पॉइंटर्स और एक-आयामी सरणी की व्याख्या करें

सूचक घोषित करना

इसका अर्थ है कि 'p' एक सूचक चर है जो एक अन्य पूर्णांक चर का पता रखता है, जैसा कि नीचे दिए गए कथन में बताया गया है -

Int *p;

सूचक का प्रारंभ

एड्रेस ऑपरेटर (&) का उपयोग पॉइंटर वेरिएबल को इनिशियलाइज़ करने के लिए किया जाता है।

उदाहरण के लिए -

int qty = 175;
int *p;
p= &qty;

सी भाषा में पॉइंटर्स और एक-आयामी सरणी की व्याख्या करें

किसी वेरिएबल को उसके पॉइंटर से एक्सेस करना

एक चर के मूल्य तक पहुँचने के लिए, अप्रत्यक्ष ऑपरेटर (*) का उपयोग किया जाता है।

उदाहरण के लिए -

सी भाषा में पॉइंटर्स और एक-आयामी सरणी की व्याख्या करें

यहां, '*' को पते पर मान के रूप में माना जा सकता है।

दो कथन निम्नलिखित कथन के समतुल्य हैं -

p = &qty;
n = *p; n =qty

पॉइंटर्स और एक-आयामी सरणियाँ

  • कंपाइलर सरणी के सभी तत्वों के लिए सतत स्मृति स्थान आवंटित करता है।
  • आधार पता =सरणी का पहला तत्व पता (सूचकांक 0)।
    • उदाहरण के लिए - int a [5] ={10, 20,30,40,50};

तत्व

पांच तत्वों को इस प्रकार संग्रहीत किया जाता है -

सी भाषा में पॉइंटर्स और एक-आयामी सरणी की व्याख्या करें

  • यदि 'p' को पूर्णांक सूचक के रूप में घोषित किया जाता है, तो, एक सरणी 'a' को निम्नलिखित असाइनमेंट द्वारा इंगित किया जा सकता है -

p = a;
(or) p = &a[0];
  • एक तत्व से दूसरे तत्व में जाने के लिए p++ का उपयोग करके 'a' के प्रत्येक मान तक पहुँचा जाता है। जब एक सूचक को बढ़ाया जाता है, तो इसका मान उस डेटाटाइप के आकार से बढ़ जाता है जिसे वह इंगित करता है। इस लंबाई को "स्केल फ़ैक्टर" कहा जाता है।

  • 'p' और 'a' के बीच संबंध को नीचे समझाया गया है -

P = &a[0] = 1000
P+1 = &a[1] = 1004
P+2 = &a[2] = 1008
P+3 = &a[3] = 1012
P+4 = &a[4] = 1016
  • किसी तत्व के पते की गणना उसके सूचकांक और डेटाटाइप के स्केल फैक्टर का उपयोग करके की जाती है। इसे समझाने के लिए एक उदाहरण यहां दिया गया है।

Address of a[3] = base address + (3* scale factor of int)
= 1000 + (3*4)
= 1000 +12
= 1012
  • सरणी अनुक्रमण का उपयोग करने के बजाय सरणी तत्वों तक पहुँचने के लिए पॉइंटर्स का उपयोग किया जा सकता है।

  • *(p+3) a[3] का मान देता है।

a[i] = *(p+i)

उदाहरण कार्यक्रम

पॉइंटर्स और एक-आयामी सरणियों के लिए सी प्रोग्राम निम्नलिखित है -

#include<stdio.h>
main ( ){
   int a[5];
   int *p,i;
   printf ("Enter 5 lements");
   for (i=0; i<5; i++)
      scanf ("%d", &a[i]);
   p = &a[0];
   printf ("Elements of the array are");
   for (i=0; i<5; i++)
      printf("%d", *(p+i));
}

आउटपुट

जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Enter 5 elements : 10 20 30 40 50
Elements of the array are : 10 20 30 40 50

  1. सी भाषा में मोनोलिथिक और मॉड्यूलर प्रोग्रामिंग की व्याख्या करें

    मोनोलिथिक प्रोग्रामिंग और मॉड्यूलर प्रोग्रामिंग के साथ-साथ फायदे और नुकसान के बीच के अंतर को नीचे विस्तार से समझाया गया है। मोनोलिथिक प्रोग्रामिंग यदि, हम एक ही फ़ंक्शन में एक संपूर्ण प्रोग्राम लिखते हैं जो मुख्य फ़ंक्शन में है, तो आप इसे एक मोनोलिथिक प्रकार की प्रोग्रामिंग कहते हैं। लेकिन, एक ही फ

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

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

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

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