Free tutorials & notes in Hindi & English · Clean code examples · Mobile friendly learning
🟡 Intermediate  ·  Lesson 18

Function Arguments

Written and reviewed by · Senior IT Faculty · 15+ years’ experience

Function Arguments (Parameters)

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

सही technical rule

C हर argument को value से pass करती है। Integer देने पर integer की copy बनती है। Address देने पर pointer value की copy बनती है; उस pointer को dereference करके caller का object access किया जाता है। Textbooks इसे अक्सर “pass by reference” कहते हैं, लेकिन C में अलग reference-parameter mechanism नहीं है।

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

Pointer Arguments (Address की Copy)

Variable का address argument बनता है। Function को उस address की copy मिलती है और pointer dereference करके वह original object modify कर सकता है। इसे informally pass by reference कहा जाता है।

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

सारांश

FeatureOrdinary value argumentPointer argument
क्या pass होता हैValue की copyAddress (pointer)
Original बदलता है?❌ नहीं✅ हाँ
Caller syntaxfunc(x)func(&x)
Function syntaxvoid f(int n)void f(int *n)
ArraysComplete array copy नहीं होतीParameter pointer में adjust होता है
  • C में हर argument value से pass होता है—pointer भी
  • Original object modify करने के लिए address pass करके pointer dereference करें
  • Array parameter pointer में adjust होता है; length अलग pass करें
  • Multiple values "return" करने के लिए pointers use करें

Authoritative संदर्भ

References 14 August 2026 को review किए गए। Programs और explanations original teaching material हैं।

अक्सर पूछे जाने वाले प्रश्न (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 true pass by reference support करती है?
नहीं। C हर argument को value से pass करती है। Caller का object modify कराने के लिए उसका address pass किया जाता है; pointer value की copy बनती है और pointer dereference करके original object access होता है।
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 दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.