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

C प्रोग्रामिंग भाषा में पॉइंटर्स के ऐरे को समझें


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

विशेषताएं

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

पॉइंटर घोषणा और आरंभीकरण

निम्नलिखित स्टेटमेंट पर विचार करें:

int qty = 179;

मेमोरी में, वेरिएबल को निम्नानुसार दर्शाया जा सकता है:

C प्रोग्रामिंग भाषा में पॉइंटर्स के ऐरे को समझें

पॉइंटर घोषित करना

इसका अर्थ है 'p' एक पॉइंटर वेरिएबल है, जो दूसरे इंटीजर वेरिएबल का पता रखता है, जैसा कि नीचे दिखाया गया है:

int *p;

पॉइंटर का आरंभीकरण

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

उदाहरण: int qty = 175;

int *p;

p = &qty;

पॉइंटर्स का ऐरे

यह पतों का संग्रह है (या पॉइंटर्स का संग्रह)।

घोषणा

पॉइंटर्स के ऐरे के लिए घोषणा निम्नलिखित है:

datatype *pointername[size];

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

int *p[5];

यह पॉइंटर्स के ऐरे को दर्शाता है जो 5 इंटीजर एलिमेंट पतों को रख सकता है।

आरंभीकरण

'&' का उपयोग आरंभीकरण के लिए किया जाता है।

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

int a[3] = {10, 20, 30};
int *p[3], i;
for (i = 0; i < 3; i++)
    p[i] = &a[i]; // या p[i] = a + i;

एक्सेस करना

इनडायरेक्शन ऑपरेटर (*) का उपयोग एक्सेस करने के लिए किया जाता है।

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

for (i = 0; i < 3; i++)
    printf("%d", *p[i]);

उदाहरण प्रोग्राम

नीचे दिया गया प्रोग्राम पॉइंटर्स के ऐरे के लिए है:

#include <stdio.h>

int main() {
    int a[3] = {10, 20, 30};
    int *p[3], i;
    
    for (i = 0; i < 3; i++)
        p[i] = &a[i];
    
    printf("ऐरे के एलिमेंट्स हैं:\n");
    for (i = 0; i < 3; i++)
        printf("%d\t", *p[i]);
    
    return 0;
}

आउटपुट

उपरोक्त प्रोग्राम को निष्पादित करने पर निम्नलिखित परिणाम प्राप्त होता है:

ऐरे के एलिमेंट्स हैं: 10 20 30

उदाहरण 2: स्ट्रिंग्स के लिए पॉइंटर्स का ऐरे

नीचे दिया गया प्रोग्राम स्ट्रिंग्स के लिए पॉइंटर्स के ऐरे के लिए है:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    char *a[5] = {"one", "two", "three", "four", "five"};
    int i;
    
    printf("स्ट्रिंग्स निम्न लोकेशन्स पर हैं:\n");
    for (i = 0; i < 5; i++)
        printf("%p\n", (void*)a[i]);
    
    return 0;
}

आउटपुट

उपरोक्त प्रोग्राम को निष्पादित करने पर निम्नलिखित परिणाम प्राप्त होता है:

स्ट्रिंग्स निम्न लोकेशन्स पर हैं:
0x403000
0x403004
0x403008
0x40300e
0x403013

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

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

  1. C भाषा में यूनियन टू पॉइंटर (Union to Pointer) C भाषा में यूनियन टू पॉइंटर (Union to Pointer)

    यूनियन (Union) क्या है? यूनियन एक यूजर-डिफाइंड डेटा प्रकार है जो एक ही मेमोरी स्थान को विभिन्न डेटा प्रकारों के सदस्यों के लिए साझा करने की अनुमति देता है। किसी भी समय केवल एक सदस्य ही मान रख सकता है। यूनियन की घोषणा union यूनियन_नाम { डेटा_प्रकार सदस्य1; डेटा_प्रकार सदस्य2; // ... };

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

    पॉइंटर घोषणा, प्रारंभिकरण और एक्सेस 1. सामान्य चर int qty = 179; // मेमोरी में: पता 1000 पर मान 179 संग्रहीत 2. पॉइंटर घोषणा int *p; // p एक पॉइंटर चर है जो int का पता रख सकता है 3. पॉइंटर प्रारंभिकरण int qty = 175; int *p; p = &qty; // एड्रेस-ऑफ ऑपरेटर (&) से पता प्राप्त करें मेमोरी आर