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

C में फंक्शन पॉइंटर असाइन करना और उपयोग करना

फंक्शन पॉइंटर क्या है?

फंक्शन पॉइंटर फंक्शन डेफिनिशन के बेस एड्रेस को मेमोरी में रखता है।

घोषणा

return_type (*pointer_name)(parameter_types);

आरंभीकरण

फंक्शन का नाम ही उसका एड्रेस होता है।

int (*p)();
p = display; // display() फंक्शन का एड्रेस

कॉल करना

(*p)(); // या p();

उदाहरण 1: सिंपल फंक्शन कॉल

#include <stdio.h>

void display() {
    printf("Hello");
}

int main() {
    void (*p)(); // फंक्शन पॉइंटर घोषणा
    p = display; // आरंभीकरण
    (*p)();      // कॉल
    return 0;
}

आउटपुट

Hello

उदाहरण 2: पैरामीटर्स के साथ फंक्शन पॉइंटर

#include <stdio.h>

void show(int *p) {
    (*p)++; // पॉइंटर द्वारा पास किए गए मान को इन्क्रीमेंट
}

int main() {
    int *ptr, a = 20;
    ptr = &a;
    show(ptr);
    printf("%d", *ptr); // 21
    return 0;
}

आउटपुट

21

उन्नत उपयोग: कॉलबैक और फंक्शन टेबल

#include <stdio.h>

int add(int a, int b) { return a + b; }
int sub(int a, int b) { return a - b; }
int mul(int a, int b) { return a * b; }
int div(int a, int b) { return b != 0 ? a / b : 0; }

int main() {
    int (*ops[4])(int, int) = {add, sub, mul, div};
    int a = 10, b = 5, choice;
    printf("0:Add 1:Sub 2:Mul 3:Div\nChoice: ");
    scanf("%d", &choice);
    if (choice >= 0 && choice < 4)
        printf("Result: %d\n", ops[choice](a, b));
    return 0;
}

मुख्य बिंदु

  • फंक्शन पॉइंटर्स रनटाइम पर फंक्शन चुनने में सक्षम बनाते हैं।
  • कॉलबैक फंक्शन्स, इवेंट हैंडलर्स, स्टेट मशीन्स के लिए आवश्यक।
  • सिंटैक्स जटिल लगता है लेकिन शक्तिशाली है।
  1. नॉन-रिकर्सिव फंक्शन का उपयोग करके संख्याओं का GCD खोजने का C प्रोग्राम नॉन-रिकर्सिव फंक्शन का उपयोग करके संख्याओं का GCD खोजने का C प्रोग्राम

    समस्या दो दी गई संख्याओं के लिए महत्तम सामान्य भाजक (GCD) को नॉन-रिकर्सिव फंक्शन का उपयोग करके खोजें। समाधान यह नीचे समझाया गया है कि नॉन-रिकर्सिव फंक्शन का उपयोग करके दो दी गई संख्याओं के लिए महत्तम सामान्य भाजक (GCD) कैसे खोजें। एल्गोरिथम नॉन-रिकर्सिव फंक्शन का उपयोग करके दो दी गई संख्याओं के लि

  1. रिकर्सिव फंक्शन का उपयोग करके संख्याओं का GCD खोजने का C प्रोग्राम रिकर्सिव फंक्शन का उपयोग करके संख्याओं का GCD खोजने का C प्रोग्राम

    समस्या C प्रोग्रामिंग भाषा में रिकर्सिव फंक्शन का उपयोग करके दो दी गई संख्याओं के लिए महत्तम सामान्य भाजक (GCD) खोजें। समाधान रिकर्सिव फंक्शन का उपयोग करके दो दी गई संख्याओं के लिए महत्तम सामान्य भाजक (GCD) खोजने का समाधान निम्नानुसार है: एल्गोरिथम रिकर्सिव फंक्शन का उपयोग करके दो दी गई संख्याओं क

  1. C++ प्रोग्राम का उपयोग करके प्रोग्राम कैसे लॉन्च करें? C++ प्रोग्राम का उपयोग करके प्रोग्राम कैसे लॉन्च करें?

    सिस्टम कमांड का उपयोग करके एप्लिकेशन लॉन्च करना यहां हम देखेंगे कि C++ प्रोग्राम का उपयोग करके नोटपैड जैसे किसी थर्ड-पार्टी एप्लिकेशन को कैसे शुरू किया जाए। यह प्रोग्राम बहुत सरल है; हम कमांड प्रॉम्प्ट कमांड का उपयोग करके यह कार्य कर सकते हैं। हम system() फ़ंक्शन के अंदर एप्लिकेशन नाम पास करेंगे। य