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

C भाषा में पॉइंटर टू पॉइंटर (डबल पॉइंटर) कैसे परिभाषित करें?


डबल पॉइंटर की घोषणा

सामान्य पॉइंटर की तरह ही, बस एक अतिरिक्त * जोड़ें।

सिंटैक्स

डेटा_प्रकार **पॉइंटर_नाम;

// उदाहरण
int **ptr;
char **strPtr;

चरण-दर-चरण प्रारंभिकरण


int value = 100;      // 1. सामान्य चर
int *p1 = &value;     // 2. सिंगल पॉइंटर (value का पता)
int **p2 = &p1;       // 3. डबल पॉइंटर (p1 का पता)

एक्सेस करना

अभिव्यक्तिअर्थमान (उदाहरण में)
valueमूल चर100
*p1p1 जो इशारा करता है100
**p2p2 → p1 → value100
*p2p2 जो इशारा करता है (p1 का पता)&value
p2p2 का अपना पता&p1

पूर्ण C प्रोग्राम

#include <stdio.h>

int main() {
    int element = 24;
    
    // सिंगल पॉइंटर
    int *ptr2 = &element;
    
    // डबल पॉइंटर
    int **ptr1 = &ptr2;
    
    printf("element का मान = %d\n", element);
    printf("सिंगल पॉइंटर से: %d\n", *ptr2);
    printf("डबल पॉइंटर से: %d\n", **ptr1);
    
    // पते प्रिंट करना
    printf("\nपते:\n");
    printf("element का पता: %p\n", (void*)&element);
    printf("ptr2 में संग्रहीत: %p\n", (void*)ptr2);
    printf("ptr1 में संग्रहीत: %p\n", (void*)ptr1);
    printf("ptr2 का पता: %p\n", (void*)&ptr2);
    
    return 0;
}

आउटपुट

element का मान = 24
सिंगल पॉइंटर से: 24
डबल पॉइंटर से: 24

पते:
element का पता: 0x7ffee3b8c9ac
ptr2 में संग्रहीत: 0x7ffee3b8c9ac
ptr1 में संग्रहीत: 0x7ffee3b8c9a0
ptr2 का पता: 0x7ffee3b8c9a0

आम गलतियाँ

❌ गलत

int **p = &a;  // गलत: &a है int*, लेकिन p है int**

✅ सही


int *p1 = &a;
int **p2 = &p1;

उपयोग के मामले

  1. फंक्शन में पॉइंटर संशोधित करना: void alloc(int **p, int n) { *p = malloc(n * sizeof(int)); }
  2. 2D डायनामिक सरणी: int **arr = malloc(rows * sizeof(int*));
  3. स्ट्रिंग्स की सरणी: char **argv (कमांड लाइन आर्गुमेंट्स)
  4. लिंक्ड लिस्ट हेड संशोधन: void insert(Node **head, int data)
  1. - C भाषा में बाइनरी सर्च का उपयोग करके ऐरे में न्यूनतम एलिमेंट कैसे खोजें?

    C प्रोग्रामिंग भाषा दो प्रकार की सर्चिंग तकनीक प्रदान करती है: लीनियर सर्च बाइनरी सर्च बाइनरी सर्च यह मेथड केवल सॉर्टेड लिस्ट पर लागू की जा सकती है। दी गई लिस्ट को दो बराबर भागों में विभाजित किया जाता है। दिए गए की की तुलना लिस्ट के मध्य एलिमेंट से की जाती है। यहां तीन स्थितियां हो सकती हैं: य

  1. C भाषा में लीनियर सर्च का उपयोग करके ऐरे में न्यूनतम एलिमेंट कैसे खोजें? C भाषा में लीनियर सर्च का उपयोग करके ऐरे में न्यूनतम एलिमेंट कैसे खोजें?

    C प्रोग्रामिंग भाषा दो प्रकार की सर्चिंग तकनीक प्रदान करती है: लीनियर सर्च बाइनरी सर्च लीनियर सर्च की एलिमेंट की खोज लीनियर फैशन में की जाती है। यह सबसे सरल सर्चिंग तकनीक है। इसके लिए लिस्ट के सॉर्टेड होने की आवश्यकता नहीं होती। सीमा - यह अधिक समय लेता है और सिस्टम की शक्ति को कम करता है। इनपु

  1. चरण-दर-चरण गाइड: Windows 11 में नई भाषा जोड़ें चरण-दर-चरण गाइड: Windows 11 में नई भाषा जोड़ें

    Windows 11 में भाषा जोड़ें Microsoft द्वारा की गई घोषणा के समय, Windows 11 उन लोगों के लिए एक मुफ्त अपग्रेड है जिनके पास पहले से Windows 10 है। इस तरह, Windows 11 के साथ संगत सभी PC Windows 11 में अपग्रेड कर सकते हैं, जो केवल कुछ हार्डवेयर आवश्यकताओं द्वारा सीमित है जो Windows 11 को चाहिए। बदले में,