C programming function arguments - W3 Coding Club

Function Argument and Parameter

किसी फंक्शन के द्वारा Mathematical calculation या किसी अन्य की गणना करने के लिए फंक्शन में वैल्यू भी पास की जा सकती हैं, जिसे हम Argument (आरग्यूमेंट) या Parameter(पैरामीटर) कहते हैं। यह Argument (आरग्यूमेंट) किसी भी टाइप की तथा कई हो सकते हैं।

ज्यादातर लोगों के द्वारा यही समझा जाता है कि Argument(आरग्यूमेंट) तथा Parameter(पैरामीटर) एक ही हैं। जबकि Argument(आरग्यूमेंट) तथा Parameter(पैरामीटर) दोनों में अंतर होता है Argument(आरग्यूमेंट) फंक्शन को कॉल करते वक्त उसको दी गई वास्तविक वैल्यू होती है अर्थात Argument(आरग्यूमेंट) फंक्शन को कॉल करते वक्त उसके Parentheses'()' में पास की गई वैल्यू या वेरिएबल होता है।

Example:-

   
   int a = 6;
   int b = 4;

   int add(ab);
 

ऊपर👆 दिए गए उदाहरण में add() फंक्शन में दो और Arguments(आरग्युमेंट) पास किए गए हैं a और b ऊपर👆 दिए के उदाहरण में दो इन टाइप के वेरिएबल a और b डिक्लेयर किए गए हैं तथा बाद में एक add नाम का फंक्शन कॉल किया गया है जो दो a तथा b वैल्यू लेता है जिसे हम Argument(आरग्यूमेंट) हैं।

अतः हम कह सकते हैं कि किसी फंक्शन को कॉल करते वक्त दी गई वैल्यू को Argument(आरग्यूमेंट) कहते हैं।

जबकि Parameter(पैरामीटर) फंक्शन Definition के अंदर variable होते हैंं। अर्थात फंक्शन की Definition (डेफिनेशन) या फंक्शन को बनाते वक्त उसके Parentheses '()' में जो variable होते हैंं होते हैं उसे हम Parameter(पैरामीटर) कहते हैं।

Example:-


   int add(int xint y){
      return x + y;
   }

ऊपर दिए गए एक add() नाम का फंक्शन डिक्लेअर किया गया है जिसमें integer टाइप के दो वेरिएबल a और b पैरामीटर के रूप में दिए गए हैं यह फंक्शन इन दो वेरिएबल का योग करके वापस रिटर्न करेगा

Note:- ध्यान रहे कि फंक्शन को कॉल करते समय Argument तथा उसके  type को जिस क्रम में दिया गया है फंक्शन को define(डिफाइन) करते समय भी उसका type तथा Parameter(पैरामीटर) का   क्रम वही होना चाहिए। 

Example:-

नीचे 👇 दिए गए उदाहरण में फंक्शन में एक वेरिएबल की वैल्यू को प्रिंट किया गया है जिसे फंक्शन में भेजा गया हैं।

   
   #include <stdio.h>
   #include <conio.h>
   void main()
   {
      int a;
      printf("\nEnter a Number : ");
      scanf("%d"&a);
      fun(a);
      getch();
   }

   fun(int x)
   {
      printf("\n You Entered : %d"x);
   }

Output:-

Enter a Number : 17
You Entered : 17

ऊपर 👆दिए गए उदाहरण में fun(a); के माध्यम से फंक्शन fun() में वेरिएबल a की वैल्यू इनपुट के रूप में दी जा रही है। यह वैल्यू fun(int x) के declaration(डिक्लेरेशन ) में प्रयोग किए गए वेरिएबल x में copy हो जाएगी और उसके बाद में printf() फंक्शन के माध्यम से वह वैल्यू प्रिंट हो रही हैं।

Return statement

इस statement(स्टेटमेंट) की सहायता से user defined function(यूजर डिफाइंड फंक्शन), calling function(कॉलिंग फंक्शन) को एक वैल्यू return(रिटर्न) कर सकता है। ध्यान देकर फंक्शन केवल एक ही वैल्यू को रिटर्न कर सकता है जबकि फंक्शन में इनपुट के तौर पर एक या एक से अधिक वैल्यू को Argument(आरग्यूमेंट) की तरफ भेजा जा सकता है। यदि फंक्शन को डिक्लेअर नहीं किया जाए तो फंक्शन int टाइप की वैल्यू रिटर्न करते हैं। यह डाटा टाइप की वैल्यू रिटर्न करनी हो तो इसके लिए फंक्शन को पहले डिक्लेअर करना होता है जिसे prototyping(प्रोटोटाइपिंग) भी करते हैं।


main()
{
        _ _ _ _ _ _ _ _ _ _ _ _ _ 
         _ _ _ _ _ _ _ _ _ _ _ _ _
    
        fun(argument list);
             _ _ _ _ __ _ _ _ _ _ _ _ 
             _ _ _ _ _ _ _ _ _ _ _ _ 

}

fun(argument list)
    {
        _ _ _ _ _ _ _ _ _ _ _ _ _
         _ _ _ _ __ _ _ _ _ _ _ _ 

return(variable);

}

Example:-


   #include <stdio.h>
   #include <conio.h>
  int fun(int xint y );
   void main()
   {
      int a, b ,c;
      printf("\nEnter a Number : ");
      scanf("%d"&a);
      printf("\nEnter a Number : ");
      scanf("%d"&b);
      c = fun(a, b);
      printf("\nsum of %d + %d = %d",a,b,c);
      getch();
   }

    int fun(int xint y )
   {
      int z;
      z = x + y;
      return(z);
   }

Output:-

Enter a Number : 20
Enter a Number : 36
sum of 20 + 36 = 56

ऊपर दिए गए उधारण में fun(); फंक्शन कॉल किया गया है इसके द्वारा रिटर्न की गई वैल्यू को एक c नाम के वेरिएबल में स्टोर करवाई गई है उसके बाद में printf() फंक्शन की सहायता से इसे प्रिंट करवा दिया गया।

  int fun(int x, int y);   के द्वारा main() फंक्शन से पहले  डिक्लेअर किया गया है।   int fun(. . . . )   का अर्थ यह है कि यह एक इंटीरियर टाइप की वैल्यू को रिटर्न करेगा। 

Argument तथा Return value(रिटर्न वैल्यू) के आधार पर फंक्शन के प्रकार

Argument तथा Return value(रिटर्न वैल्यू) के आधार पर फंक्शन के निम्न प्रकार होते हैं👇👇

1) Take Nothing, return Nothing function:-

ऐसे फंक्शन जिनमें ना तो Argument(आरग्युमेंट) होते हैं और नहीं return value(वैल्यू रिटर्न) होती है। 

Example:-

   #include <stdio.h>
   #include <conio.h>
  void myfun(void);
   void main()
   {
      printf("\n this is a main() function .....");
      myfun(); // call myfun() function 
      printf("\n this is a main() function .....");
      getch();
   }

   void myfun(void)
   {
      printf("\n Call Nothing return Nothing function ");
   }

Output:-

this is a main() function .....
Call Nothing return Nothing function
this is a main() function .....

Explain Example:-

ऊपर दिए गए उदाहरण में myfun() को define(डिफाइन ) किया गया है इसके अंदर केवल एक स्टेटमेंट है तथा इसको main() फंक्शन से पहले डिक्लेअर किया गया है। डिक्लेअर करते समय फंक्शन से पहले void टाइप किया गया है इसका अर्थ यह है कि यह फंक्शन कोई वैल्यू रिटर्न नहीं करेगा। फंक्शन के Argument(आरग्युमेंट) की जगह पर भी void लिखा गया है इसका अर्थ यह है कि यह फंक्शन Argument(आरग्युमेंट) के रूप में कोई वैल्यू नहीं लेगा।


2) Take Nothing, return Something function:-

ऐसे फंक्शन जिसमें Argument(आरग्युमेंट) नहीं होते लेकिन Return value(वैल्यू रिटर्न) होती है।

Example:-

दिया गया फंक्शन Argument(आरग्युमेंट) के रूप में कोई भी वैल्यू नहीं ले रहा है जबकि वैल्यू रिटर्न कर रहा हैं।

    #include <stdio.h>
    #include <conio.h>
    int myfun(void);
    void main()
    {
        int a;
        a = myfun(); // call myfun() function
        printf("the return value by myfun = %d", a);
        getch();
    }

    int myfun(void)
    {
        int x, y;
        printf("\nEnter a Number : ");
        scanf("%d"&x);
        printf("\nEnter a Number : ");
        scanf("%d"&y);
        return (x+y);
    }

Output:-

Enter a Number : 12
Enter a Number : 32
the return value by myfun = 44

Explain Example:-

ऊपर दिए गए उदाहरण में myfun() नाम का user defined function(यूजर डिफाइंड फंक्शन) बनाया गया है जो दो वैल्यू को इनपुट में ले रहा है तथा उसका sum रिटर्न कर रहा है।
फंक्शन को define(डिफाइन) तथा declare(डिक्लेअर) करते समय फंक्शन के आगे int तथा फंक्शन के parenthesis "()" के अंदर void लिखा गया है इसका अर्थ यह है कि फंक्शन में argument के रूप में कोई भी वैल्यू नहीं लेगा लेकिन रिटर्न के रूप में integer type(इंटीजर टाइप) की वैल्यू रिटर्न करेगा।


3) Take something Return Nothing function:-

ऐसे फंक्शन जिसमें Argument(आरग्युमेंट) होते हैं return value(वैल्यू रिटर्न) नहीं होती हैं।

Example:-

इस उदाहरण में फंक्शन Argument(आरग्युमेंट) के रूप में वैल्यू ले रहा है लेकिन Return(रिटर्न) में कोई भी वैल्यू नहीं दे रहा।

    #include <stdio.h>
    #include <conio.h>
    void myfun(int aint b);
    void main()
    {
        int x, y;
        printf("\nEnter a Number : ");
        scanf("%d"&x);
        printf("\nEnter a Number : ");
        scanf("%d"&y);
        myfun(x, y); //myfun() return nothing function
        getch();
    }

    void myfun(int aint b)
    {
        int c;
        c = a*b;
        printf("\nThe value of %d x %d  is %d",a,b,c);
    }

Output:-

Enter a Number : 143
Enter a Number : 2
The value of 143 x 2 is 286

Explain Example:-

ऊपर दिए गए उदाहरण में main() फंक्शन के अंदर myfun() नाम के फंक्शन को कॉल किया गया है जो कि value x तथा y दो Argument(आरग्युमेंट) के रूप में ले रहा है। जबकि यह फंक्शन रिटर्न में कोई भी वैल्यू रिटर्न नहीं करेगा।
myfun() को डिफाइन तथा डिक्लेअर करते समय फंक्शन से पहले void कीवर्ड इस्तेमाल किया गया है इसका अर्थ यह है कि यह फंक्शन रिटर्न में कोई भी वैल्यू रिटर्न नहीं करेगा। तथा इसके पेरेंट्स इसमें int a और int b लिखा गया है इसका अर्थ यह है कि यह फंक्शन आर्गुमेंट के रूप में दो दो वैल्यू लेगा।
myfun() को कॉल करते वक्त () के अंदर 'x, y' लिखा गया है इसका अर्थ यह है कि यह फंक्शन x व y वैल्यू को Argument के रूप में ले रहा है तथा जहां पर इस फंक्शन की डेफिनेशन है वहां पर यानी x, y की वैल्यू को void myfun(int a, int b) के अंदर a तथा b के अंदर कॉपी कर देगा।
इसके बाद में इस value को myfun फंक्शन के अंदर कहीं पर भी यूज कर सकते हैं।


4) Take something Return something function:-

ऐसे फंक्शन जिसमें Argument(आरग्युमेंट) भी होते हैं और Return value(वैल्यू रिटर्न) भी होती हैंं।

Example:-


    #include <stdio.h>
    #include <conio.h>
    int myfun(int aint b);
    void main()
    {
        int x, y,z;
        printf("\nEnter a Number : ");
        scanf("%d"&x);
        printf("\nEnter a Number : ");
        scanf("%d"&y);
        //myfun() take something, return something function
        z =  myfun(x, y); 
        printf("\n The value of %d x %d is %d ",x,y,z);
        getch();
    }

    int myfun(int aint b)
    {
        return a*b;
    }

Output:-

Enter a Number : 30
Enter a Number : 20
The value of 30 × 20 is 600

Explain Example:-

ऊपर दिए गए उदाहरण में myfun() नाम का एक फंक्शन main() फंक्शन के बाद में define किया गया है तथा main() फंक्शन से पहले declare किया गया हैं।
यह फंक्शन Argument में दो वैल्यू ले रहा है तथा उन दो वैल्यू का गुणा करके रिटर्न कर रहा है।

फंक्शन को define तथा declare करते समय int myfun(int a, int b) लिखा गया है।
फंक्शन से पहले लिखे गए int का अर्थ यह है कि यह integer type(इंटीरियर टाइप) की वैल्यू रिटर्न करेगा
तथा इसके () में लिखे गए (int a, int b) का अर्थ यह है कि यह फंक्शन दो integer type(इंटीरिजर टाइप) की वैल्यू को Argument के रूप में ले रहा हैं।

Post a Comment

0 Comments