https://www.rakeshmgs.in/search/label/Template
https://www.rakeshmgs.in

Hindi Notes

RakeshMgs

Types of Functions Call in C Programming Hindi Notes

शुक्रवार, फ़रवरी 26, 2021

Types of Function calls in C

Program में जब भी आप function को use करना चाहते है तो उसे call करते है।

    
    
functionName(argument1, argument2,...);

argument-list – arguments वो real values होती है जो आप functions को call करते समय पास करते है। ये values function definition में parameters को assign होती है। इसके बाद इन values पर processing होती है और result return किया जाता है।

Addition के function को call करते समय कोई 5 values पास करेंगे जैसे की 5 और 7, इनकी जगह variables भी pass किये जा सकते है जिनमें values store की गयी है।

ये values parameter variables a और b को assign हो जाएँगी और function के अंदर इन variables पर ही processing होती है। ऐसे functions जिनमें parameters defined किये गए है और यदि आप function call करते समय arguments पास नहीं करते है तो program में error आती है।

Addition के function को आप इस प्रकार call कर सकते है।

    
    
/* Calling add function with arguments 5 and 7*/ add(5,7);

C language में functions को 2 प्रकार से call किया जा सकता है।

  1. Call by Value – इस तरीके में argument के रूप में values और variables पास किये जाते है।
  2. Call by Reference – इस तरीके में argument के रूप में variables का reference पास किया जाता है।

Call by Value

जब आप function call करते समय argument के रूप में कोई value पास करते है तो वह parameter variables में copy हो जाती है और इसके बाद उन variables पर operations perform किये जाते है।

इसी प्रकार जब आप function को call करते समय कोई variable पास करते है तो असल में वह variable function में नहीं pass किया जाता है बल्कि उस variable की value parameter variable में copy की जाती है और उसके बाद उस parameter variable पर operations perform किये जाते है।

यदि ऊपर दिए गए addition के function को call करते समय दो integer variables x और y pass किये जाएँ तो ऐसा करने पर उन दोनों variables की value parameter variables a और b में copy हो जायेगी और उन पर addition perform करके result return किया जाएगा।

इस तरह के function call को call by value कहा जाता है। इसमें असल argument variables की value change नहीं होती है और जो भी operation होता है वह parameter variables पर ही perform होता है।

    
#include <stdio.h> void calc(int x);// function declaration int main() { int x=10; calc(x); // this will print the value of 'x' return 0; } void calc(int x)// function definition { // chnaging the value of 'x' x = x + 10; printf("value of x in calc function is %d", x); }

output

value of x in calc function is 20
value of x in main is 10

Call by Reference

किसी function को call करते समय असल variables pass करने की बजाय उनका address भी पास किया जा सकता है। ऐसा करने पर उन variables का address parameter variables में copy होगा और parameter variable memory में असल argument variables को ही point करेंगे।

इस तरह के function call को call by reference कहा जाता है। इस तरह के function call में असल argument variables का address pass किया जाता है। ऐसा करने से function के अंदर यदि parameter variables की values में changes आते है तो उससे असल argument variables की values में भी changes आते है। यानी parameters में change आने पर arguments भी change हो जाते है।

इस तरह के function call में arguments को address of operator (&) के साथ pass किया जाता है। यह operator argument का address parameter variables को pass करता है। इसके अलावा function के declaration और definition में parameters को value at (*) operator के साथ define किया जाता है।

    
#include <stdio.h> // function taking pointer as argument void calc(int *p); int main() { int x=10; // passing address of 'x' as argument calc(&x); printf("value of x is %d", x); return 0; } void calc(int *p) //receiving the address in a reference pointer variable { /* changing the value directly that is stored at the address passed */ *p = *p + 10; }

output

value of x is 20