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

C भाषा में पॉइंटर्स के विभिन्न प्रकार

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

सिंटैक्स

pointer = &variable;

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

आठ विभिन्न प्रकार के पॉइंटर्स होते हैं:

  1. नल पॉइंटर
  2. वॉइड पॉइंटर
  3. वाइल्ड पॉइंटर
  4. डैंगलिंग पॉइंटर
  5. कॉम्प्लेक्स पॉइंटर
  6. नियर पॉइंटर
  7. फार पॉइंटर
  8. ह्यूज पॉइंटर

1. नल पॉइंटर (Null Pointer)

पॉइंटर घोषणा के समय नल मान असाइन करके बनाया जाता है। जब आप पॉइंटर को कोई पता असाइन नहीं करना चाहते, तो यह उपयोगी है। एक नल पॉइंटर में हमेशा मान 0 होता है।

उदाहरण

#include <stdio.h> 

int main() {
    int *ptr = NULL;  // नल पॉइंटर
    printf("Value inside ptr: %p\n", (void*)ptr);
    return 0;
}

आउटपुट

Value inside ptr: (nil)

2. वॉइड पॉइंटर (Void Pointer)

  • इससे कोई डेटा टाइप जुड़ा नहीं होता।
  • किसी भी प्रकार का पता रख सकता है और किसी भी प्रकार में टाइपकास्ट किया जा सकता है।
  • इसे जेनेरिक पॉइंटर भी कहते हैं।
  • void कीवर्ड से बनाया जाता है।

उदाहरण

#include <stdio.h> 

int main() {
    void *p = NULL;  // वॉइड पॉइंटर
    printf("Size of pointer: %zu bytes\n", sizeof(p));
    return 0;
}

आउटपुट (64-बिट सिस्टम)

Size of pointer: 8

उपयोग उदाहरण

void printValue(void *ptr, char type) {
    switch(type) {
        case 'i': printf("%d", *(int*)ptr); break;
        case 'f': printf("%f", *(float*)ptr); break;
        case 'c': printf("%c", *(char*)ptr); break;
    }
}

3. वाइल्ड पॉइंटर (Wild Pointer)

  • अनइनिशियलाइज़्ड पॉइंटर्स को वाइल्ड पॉइंटर्स कहते हैं।
  • ये मनमाने मेमोरी लोकेशन पर इंगित करते हैं और प्रोग्राम को क्रैश कर सकते हैं या खराब व्यवहार कर सकते हैं।
  • इस प्रकार का C पॉइंटर कुशल नहीं है।
  • वाइल्ड पॉइंटर्स के साथ काम करते समय सावधानी बरतने की सलाह दी जाती है।

उदाहरण

#include <stdio.h> 

int main() {
    int *p;  // वाइल्ड पॉइंटर - अनइनिशियलाइज़्ड
    // printf("%d", *p);  // अपरिभाषित व्यवहार - क्रैश या गार्बेज
    p = NULL;  // सुरक्षित: नल असाइन करें
    return 0;
}

4. डैंगलिंग पॉइंटर (Dangling Pointer)

  • वह पॉइंटर जो पहले से मुक्त (freed) की गई मेमोरी को इंगित करता है।
  • free() या delete के बाद पॉइंटर को NULL नहीं करने पर होता है।

उदाहरण

int *ptr = malloc(sizeof(int));
free(ptr);
// ptr अब डैंगलिंग पॉइंटर है
ptr = NULL;  // ठीक करें: मुक्त करने के बाद NULL असाइन करें

5. कॉम्प्लेक्स पॉइंटर (Complex Pointer)

फंक्शन पॉइंटर्स, पॉइंटर्स की सरणी, पॉइंटर-टू-पॉइंटर आदि जैसे जटिल घोषणाएं।

int (*fp)(int, int);        // फंक्शन पॉइंटर
int *arr[10];               // पॉइंटर्स की सरणी
int **ptr2;                 // पॉइंटर-टू-पॉइंटर
int (*pa)[10];              // सरणी का पॉइंटर

6-8. नियर, फार, ह्यूज पॉइंटर्स

ये 16-बिट सेगमेंटेड आर्किटेक्चर (DOS/8086) के लिए विशिष्ट हैं। आधुनिक 32/64-बिट सिस्टम्स में अप्रचलित।

  • नियर: 16-बिट, 64KB सेगमेंट
  • फार: 32-बिट, सेगमेंट:ऑफसेट, 1MB
  • ह्यूज: 32-बिट, रैखिक एड्रेसिंग

अन्य महत्वपूर्ण पॉइंटर प्रकार

प्रकारविवरण
फंक्शन पॉइंटरफंक्शन का पता संग्रहीत करता है
पॉइंटर-टू-पॉइंटरदूसरे पॉइंटर का पता (int **ptr)
सरणी का पॉइंटरपूरी सरणी की ओर इंगित करता है (int (*p)[N])
कॉन्स्ट पॉइंटरपता नहीं बदल सकता (int *const p)
पॉइंटर टू कॉन्स्टमान नहीं बदल सकता (const int *p)

सारांश

  • आधुनिक C में मुख्य रूप से: नल, वॉइड, फंक्शन पॉइंटर, पॉइंटर-टू-पॉइंटर, कॉन्स्ट पॉइंटर्स उपयोगी हैं।
  • हमेशा पॉइंटर्स इनिशियलाइज़ करें (NULL या वैध पता)।
  • void* जेनेरिक कोड (जैसे memcpy, qsort) के लिए आवश्यक है।
  1. C भाषा में खोज तकनीकें (Searching Techniques) C भाषा में खोज तकनीकें (Searching Techniques)

    खोज (Searching) का परिचय खोज तकनीक का अर्थ है किसी सूची में किसी कुंजी तत्व (key element) को ढूंढना। यदि तत्व मिल जाता है तो खोज सफल (successful), अन्यथा असफल (unsuccessful) होती है। C में दो प्रमुख खोज तकनीकें रैखिक खोज (Linear Search) द्विआधारी खोज (Binary Search) 1. रैखिक खोज (Linear Search)

  1. Windows में Safe Mode क्या है? Safe Mode के विभिन्न प्रकार क्या हैं? Windows में Safe Mode क्या है? Safe Mode के विभिन्न प्रकार क्या हैं?

    इस पोस्ट में, हम देखेंगे Windows में Safe Mode क्या है और Safe Mode के विभिन्न प्रकार क्या हैं - जैसे Safe Mode, Safe Mode with Networking & Safe Mode with Command Prompt और उनका क्या अर्थ है। अधिकांश Windows उपयोगकर्ता Safe Mode से परिचित हो सकते हैं, क्योंकि जब आपको Windows समस्याओं का निदान

  1. Windows में Safe Mode क्या है? Safe Mode के विभिन्न प्रकार क्या हैं? Windows में Safe Mode क्या है? Safe Mode के विभिन्न प्रकार क्या हैं?

    इस पोस्ट में, हम देखेंगे Windows में Safe Mode क्या है और Safe Mode के विभिन्न प्रकार क्या हैं - जैसे Safe Mode, Safe Mode with Networking & Safe Mode with Command Prompt और उनका क्या अर्थ है। अधिकांश Windows उपयोगकर्ता Safe Mode से परिचित हो सकते हैं, क्योंकि जब आपको Windows समस्याओं का निदान