پارامترها و آرگومان‌ها

تفاوت پارامتر و آرگومان، آرگومان‌های پیش‌فرض‌ناپذیر و پاس دادن با مقدار

پارامتر و آرگومان

این دو اصطلاح اغلب به‌جای هم استفاده می‌شوند اما تفاوت دارند:

int add(int a, int b) {  // a و b پارامتر هستند
    return a + b;
}

add(5, 3);  // 5 و 3 آرگومان هستند

چند پارامتر

پارامترها با کاما جدا می‌شوند و هر کدام نوع خودشان را دارند:

void printInfo(char name[], int age, float height) {
    printf("%s is %d years old and %.2f meters tall", name, age, height);
}

پاس دادن با مقدار (Pass by Value)

نکته مهم: در C آرگومان‌ها با مقدار پاس داده می‌شوند. یعنی یک کپی از مقدار به تابع می‌رسد و تغییر آن داخل تابع، متغیر اصلی را تغییر نمی‌دهد:

void changeValue(int x) {
    x = 100;  // فقط کپی تغییر می‌کند
}

int main() {
    int num = 50;
    changeValue(num);
    printf("%d", num);  // هنوز 50 است!
}

برای تغییر متغیر اصلی باید از اشاره‌گر استفاده کرد که در بخش بعدی می‌آموزید.

تعداد و ترتیب آرگومان‌ها

آرگومان‌ها باید از نظر تعداد، نوع و ترتیب با پارامترها مطابقت داشته باشند:

void printInfo(char name[], int age) { ... }

printInfo("Ali", 25);   // ✅ درست
printInfo(25, "Ali");   // ❌ ترتیب اشتباه

نکات مهم

این مبحث بخشی از دوره آموزش کامل زبان C است.

ابزارهای مرتبط