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

C में ऐरे ऑफ पॉइंटर्स और पॉइंटर टू पॉइंटर

ऐरे ऑफ पॉइंटर्स

किसी भी डेटा टाइप की तरह, हम पॉइंटर्स का ऐरे घोषित कर सकते हैं।

घोषणा

datatype *pointername[size];

उदाहरण: int *p[5]; // 5 इंटीजर एड्रेस रखने वाला पॉइंटर ऐरे

आरंभीकरण

int a[3] = {10, 20, 30};
int *p[3];
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("Array elements via pointers: ");
    for (i = 0; i < 3; i++)
        printf("%d\t", *p[i]);
    return 0;
}

आउटपुट

Array elements via pointers: 10 20 30

पॉइंटर टू पॉइंटर (डबल पॉइंटर)

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

घोषणा

datatype **pointer_name;

उदाहरण: int **p;

आरंभीकरण

int a = 10;
int *p;
int **q;
p = &a;
q = &p;

एक्सेस करना

**q // a का मान देता है

प्रोग्राम

#include <stdio.h>

int main() {
    int a = 10;
    int *p;
    int **q;
    p = &a;
    q = &p;
    printf("a = %d\n", a);
    printf("a via pointer = %d\n", *p);
    printf("a via pointer to pointer = %d\n", **q);
    return 0;
}

आउटपुट

a = 10
a via pointer = 10
a via pointer to pointer = 10

उपयोग केस

  • ऐरे ऑफ पॉइंटर्स: स्ट्रिंग्स ऐरे, कमांड लाइन आर्गुमेंट्स (argv), डायनामिक 2D ऐरे।
  • पॉइंटर टू पॉइंटर: फंक्शन में पॉइंटर मॉडिफाई करना, डायनामिक 2D ऐरे, लिंक्ड लिस्ट में नोड इन्सर्शन/डिलीशन।
  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; // एड्रेस-ऑफ ऑपरेटर (&) से पता प्राप्त करें मेमोरी आर

  1. C# में क्लास की अवधारणा समझाएं C# में क्लास की अवधारणा समझाएं

    क्लास C# में आवश्यक प्रकारों में से एक है। हम क्लास को समस्या डोमेन से संबंधित ऑब्जेक्ट्स के लिए ब्लूप्रिंट के रूप में सोच सकते हैं। यह एक टेम्पलेट है जिससे हम ऑब्जेक्ट्स बनाते हैं, उस संरचना और व्यवहार को परिभाषित करते हुए जो इस क्लास से बने ऑब्जेक्ट्स के सेट द्वारा साझा किया जाएगा। सरल शब्दों में,