🟡 Intermediate  ·  Lesson 18

Function Arguments

Function Arguments (Parameters)

Function call करते समय जो data pass करते हैं वो arguments कहलाते हैं। Function definition में जो variables उन्हें receive करते हैं वो parameters कहलाते हैं।

C में arguments pass करने के दो तरीके:

  • Pass by Value — value की copy pass होती है (default)
  • Pass by Reference — address (pointer) pass होता है, original modify हो सकता है

Pass by Value

Argument की value की copy pass होती है। Function के अंदर changes original variable को affect नहीं करते।

C Language
void double_karo(int n) {   // n, argument की COPY है
    n = n * 2;               // केवल local copy बदली
    printf("Function mein: %d\n", n);
}
int main() {
    int x = 5;
    double_karo(x);            // x की copy pass
    printf("Baad mein: %d\n", x); // x नहीं बदला!
}
Function mein: 10 Baad mein: 5

Pass by Reference (Pointers)

Variable का address pass होता है। Function pointer के ज़रिये original variable को modify कर सकता है।

C Language – Swap Correct
#include <stdio.h>

void swap(int *a, int *b) {  // Pointer receive करता है
    int temp = *a; *a = *b; *b = temp;
}

int main() {
    int x = 10, y = 20;
    printf("Pehle: x=%d, y=%d\n", x, y);
    swap(&x, &y);              // Address pass
    printf("Baad:  x=%d, y=%d\n", x, y);
    return 0;
}
Pehle: x=10, y=20 Baad: x=20, y=10

Multiple Values Return करना

C Language – Min Max ek call mein
void minMax(int arr[], int n, int *mn, int *mx) {
    *mn = *mx = arr[0];
    for(int i=1; i<n; i++) {
        if(arr[i] < *mn) *mn = arr[i];
        if(arr[i] > *mx) *mx = arr[i];
    }
}

int main() {
    int a[] = {85,32,97,45,11}, mn, mx;
    minMax(a, 5, &mn, &mx);
    printf("Min=%d, Max=%d\n", mn, mx);
}
Min=11, Max=97

सारांश

FeaturePass by ValuePass by Reference
क्या pass होता हैValue की copyAddress (pointer)
Original बदलता है?❌ नहीं✅ हाँ
Caller syntaxfunc(x)func(&x)
Function syntaxvoid f(int n)void f(int *n)
Arraysहमेशा automatically by reference
  • Default: pass by value — function copy पर काम करता है
  • Original modify करने के लिए: pass by reference (pointers)
  • Arrays हमेशा by reference pass होते हैं (first element का pointer)
  • Multiple values "return" करने के लिए pointers use करें

अक्सर पूछे जाने वाले प्रश्न (FAQ)

C में function arguments क्या हैं?
Function arguments वे values हैं जो आप function को call करते समय भेजते हैं, जिन्हें function अपने parameters के ज़रिए पाता है। जैसे add(3, 5) में arguments 3 और 5 add function के अंदर parameters बन जाते हैं।
arguments और parameters में क्या अंतर है?
Parameters function definition में सूचीबद्ध variable नाम हैं, जबकि arguments वे असली values हैं जो function call करते समय भेजी जाती हैं। Parameters placeholders हैं; arguments किसी विशेष call के लिए उन्हें भरते हैं।
C में call by value क्या है?
Call by value का मतलब function हर argument की एक copy पाता है, तो function के अंदर किए बदलाव caller के मूल variables को प्रभावित नहीं करते। C सामान्य variables को functions में भेजने का यह default तरीका है।
C में function को array कैसे भेजते हैं?
आप array को उसके नाम से भेजते हैं, जो function को उसके पहले element का address देता है, तो function copy के बजाय मूल array पर काम करता है। आप आमतौर पर size भी अलग argument के रूप में भेजते हैं, क्योंकि length अपने आप साथ नहीं जाती।
क्या C function value लौटा सकता है?
हाँ। Function का return type बताता है कि वह किस तरह की value लौटाता है, और return statement वह value caller को भेजता है। void declared function कुछ नहीं लौटाता, जबकि int declared एक integer लौटाता है।
← Back to C Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.