MCAWALA

C Programming Tutorial

C Programming में Pointer और Arrays – आसान हिंदी में समझें

C language में Pointer और Array दोनों बहुत महत्वपूर्ण concepts हैं। इन दोनों का आपस में गहरा संबंध है। आज हम समझेंगे कि Pointer और Arrays कैसे काम करते हैं, और इनका एक साथ उपयोग कैसे किया जाता है।

Array क्या है?

Array एक ऐसा डेटा structure है जो एक ही प्रकार के कई elements को sequential memory locations में store करता है। जैसे:

int arr[5] = {10, 20, 30, 40, 50};

यहाँ arr नामक array में 5 integers हैं, जिनके index 0 से 4 तक हैं।

Pointer क्या है?

Pointer एक variable होता है जो memory में किसी और variable के address को store करता है।

int x = 10;  
int *p = &x;  // p में x का address store हुआ

Pointer और Array का संबंध

C में, array का नाम खुद array के पहले element का address होता है। इसका मतलब है कि array name एक pointer की तरह काम करता है।

int arr[5] = {10, 20, 30, 40, 50};  
int *p = arr;  // p अब arr के पहले element के address को point करता है

इसलिए हम pointer arithmetic से array के elements को access कर सकते हैं।

Example: Pointer से Array के Elements Access करना


#include <stdio.h>

int main() {
    int arr[5] = {10, 20, 30, 40, 50};
    int *p = arr;  // arr का address pointer p को दिया

    printf("Array elements using pointer:\n");
    for (int i = 0; i < 5; i++) {
        printf("%d ", *(p + i));  // pointer arithmetic से element access
    }

    return 0;
}
  

Explanation:

  • p = arr; से p अब arr के पहले element का address रखता है।
  • *(p + i) में p से i steps आगे जाकर उस element को access करते हैं।
  • यह pointer arithmetic है जो array के elements को iterate करने में मदद करता है।

Pointer और Array Indexing में अंतर

Array indexing और pointer arithmetic दोनों से array elements को access किया जा सकता है। दोनों समान रूप से काम करते हैं:

arr[i] == *(arr + i)

इसलिए pointer से भी array के elements को access कर सकते हैं।

Example: Pointer से Array के Elements को Modify करना


#include <stdio.h>

int main() {
    int arr[3] = {5, 10, 15};
    int *p = arr;

    *(p + 1) = 20;  // arr[1] की value 20 set की

    printf("Modified array elements:\n");
    for (int i = 0; i < 3; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}
  

Explanation:

  • *(p + 1) = 20; का मतलब है array के दूसरे element को 20 set करो।
  • Output होगा: 5 20 15

Pointer to Array

Pointer to array में pointer पूरी array को point करता है, ना कि सिर्फ एक element। यह थोड़ा अलग होता है:

int arr[3] = {1, 2, 3};  
int (*p)[3] = &arr;  // p अब arr पूरी array का address रखता है

यह ज्यादा advanced topic है, लेकिन आपको basic pointer और array का relation पहले समझना ज़रूरी है।

Summary

  • Array का नाम एक pointer की तरह काम करता है जो array के पहले element का address रखता है।
  • Pointer arithmetic से array के elements को आसानी से access और modify किया जा सकता है।
  • Array indexing और pointer dereferencing में equivalence होती है: arr[i] == *(arr + i)

अक्सर पूछे जाने वाले सवाल (FAQs)

क्या pointer को array के बाहर इस्तेमाल किया जा सकता है?

हाँ, pointer किसी भी valid memory address को point कर सकता है, array के बाहर भी।

क्या pointer से array का size पता चलता है?

नहीं, pointer को केवल address पता होता है। array का size जानने के लिए अलग variable रखना पड़ता है।

निष्कर्ष

Pointer और Array C programming के बहुत ही जरूरी topics हैं। Pointer से array को समझना और manage करना बेहतर प्रोग्रामिंग के लिए जरूरी है। ऊपर दिए गए उदाहरण और explanation से आपको Pointer और Arrays का relationship आसानी से समझ आ जाएगा।