فهرست سرفصل‌های C
خانه (Home) مقدمه (Intro) شروع کار (Get Started) سینتکس (Syntax) دستورات (Statements) خروجی متن (Print Text) خط های جدید (New Lines) کامنت ها (Comments) ساخت متغیرها (Create Variables) مشخص کننده های فرمت (Format Specifiers) تغییر مقدارها (Change Values) چند متغیر (Multiple Variables) نام گذاری متغیرها (Variable Names) نمونه واقعی متغیرها (Real-Life Examples) انواع داده (Data Types) کاراکترها (Characters) اعداد (Numbers) دقت اعشاری (Decimal Precision) حجم حافظه (Memory Size) مثال واقعی داده ها (Real-Life Example) تبدیل نوع (Type Conversion) انواع پیشرفته (Extended Types) ثابت ها (Constants) عملگرها (Operators) عملگرهای حسابی (Arithmetic) عملگرهای انتساب (Assignment) عملگرهای مقایسه (Comparison) عملگرهای منطقی (Logical) اولویت عملگرها (Precedence) بولین ها (Booleans) مثال واقعی بولین ها (Real-Life Examples) شرط ها – if (if) else else if نوشتار کوتاه if (Short Hand If) if تو در تو (Nested If) عملگرهای منطقی در شرط ها (Logical Operators) مثال واقعی شرط ها (Real-Life Examples) سوئیچ (Switch) حلقه while (While Loop) حلقه do-while (Do/While Loop) مثال واقعی while (Real-Life Examples) حلقه for (For Loop) حلقه های تو در تو (Nested Loops) مثال واقعی for (Real-Life Examples) دستور break/continue (Break/Continue) آرایه ها (Arrays) اندازه آرایه (Array Size) حلقه روی آرایه (Array Loops) مثال واقعی آرایه (Real-Life Example) آرایه چندبعدی (Multidimensional Arrays) رشته ها (Strings) کاراکترهای خاص (Special Characters) توابع رشته (String Functions) ورودی کاربر (User Input) آدرس حافظه (Memory Address) پوینترها (Pointers) پوینتر و آرایه ها (Pointers & Arrays) حساب پوینتر (Pointer Arithmetic) پوینتر به پوینتر (Pointer to Pointer) توابع (Functions) پارامترهای تابع (Function Parameters) حوزه متغیرها (Scope) اعلان تابع (Function Declaration) توابع ریاضی (Math Functions) توابع inline (Inline Functions) بازگشت (Recursion) پوینترهای تابع (Function Pointers) تابع callback (Callback Functions) ایجاد فایل (Create Files) نوشتن در فایل (Write To Files) خواندن فایل (Read Files) ساختارها (Structures) ساختار تو در تو (Nested Structures) ساختار و پوینترها (Structs & Pointers) یونیون ها (Unions) typedef پدینگ ساختار (Struct Padding) انوم ها (Enums) مدیریت حافظه (Memory Management) اختصاص حافظه (Allocate Memory) دسترسی به حافظه (Access Memory) تخصیص مجدد (Reallocate Memory) آزادسازی حافظه (Deallocate Memory) ساختارها و حافظه (Structs and Memory) مثال حافظه (Memory Example) خطاها (Errors) دیباگ (Debugging) مقدار NULL مدیریت خطا (Error Handling) اعتبارسنجی ورودی (Input Validation) تاریخ و زمان (Date) اعداد تصادفی (Random Numbers) ماکروها (Macros) سازماندهی کد (Organize Code) کلاس های ذخیره سازی (Storage Classes) عملگرهای بیتی (Bitwise Operators) اعداد ثابت عرض (Fixed-width Integers) پروژه ها (Projects) مرجع (Reference) کلمات کلیدی (Keywords) stdio.h stdlib.h string.h math.h ctype.h time.h مثال ها (Examples) مثال های واقعی (Real-Life Examples) تمرین ها (Exercises) آزمون (Quiz) کامپایلر آنلاین (Compiler) سرفصل دوره (Syllabus) برنامه مطالعه (Study Plan) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
C

C — پارامترهای تابع (Function Parameters)

آخرین بروزرسانی: 1404/08/14

پارامترهای تابع (Function Parameters)

«پارامتر تابع (Function Parameter)» ورودی های تابع هستند. هنگام «فراخوانی (Call)» مقدار می دهیم. به این مقدار «آرگومان (Argument)» می گوییم. با پارامترها، تابع انعطاف پذیر می شود. برای دسترسی سریع، صفحه پارامترهای تابع را نشانه گذاری کن.

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

پارامتر داخل پرانتز تابع تعریف می شود. تعدادشان آزاد است. آن ها را با ویرگول جدا کن.

returnType functionName(parameter1, parameter2, parameter3) {
  // code to be executed
}

مشاهده در ادیتور

در این مثال، پارامتر رشته «name» است. با هر فراخوانی، یک نام چاپ می شود.

void myFunction(char name[]) {
  printf("Hello %s\n", name);
}

int main() {
  myFunction("Liam");
  myFunction("Jenny");
  myFunction("Anja");
  return 0;
}

مشاهده در ادیتور

نکته: «name» پارامتر است. «Liam» و «Jenny» و «Anja» آرگومان هستند.

چند پارامتر همزمان

می توانی چند پارامتر بدهی. ترتیب آرگومان ها باید مطابق پارامترها باشد.

void myFunction(char name[], int age) {
  printf("Hello %s. You are %d years old.\n", name, age);
}

int main() {
  myFunction("Liam", 3);
  myFunction("Jenny", 14);
  myFunction("Anja", 30);
  return 0;
}

مشاهده در ادیتور

بازنویسی مثال جمع با پارامتر

به جای اعداد ثابت، پارامتر بده. سپس برای هر ورودی، جمع را چاپ کن.

void calculateSum(int x, int y) {
  int sum = x + y;
  printf("The sum of %d + %d is: %d\n", x, y, sum);
}

int main() {
  calculateSum(5, 3);
  calculateSum(8, 2);
  calculateSum(15, 15);
  return 0;
}

مشاهده در ادیتور

ارسال آرایه به تابع

می توانی یک آرایه بدهی. داخل تابع، با حلقه for عناصر را بخوان.

void myFunction(int myNumbers[5]) {
  for (int i = 0; i < 5; i++) {
    printf("%d\n", myNumbers[i]);
  }
}

int main() {
  int myNumbers[5] = {10, 20, 30, 40, 50};
  myFunction(myNumbers);
  return 0;
}

مشاهده در ادیتور

نکته: هنگام ارسال، فقط نام آرایه را بده. اعلان کامل در امضای تابع می آید.

مقدار بازگشتی (Return Value)

اگر نوع تابع «void» نباشد، می تواند با «return» مقداری برگرداند.

int myFunction(int x) {
  return 5 + x;
}

int main() {
  printf("Result is: %d", myFunction(3));
  return 0;
}

مشاهده در ادیتور

نمونه دو پارامتر را هم ببین.

int myFunction(int x, int y) {
  return x + y;
}

int main() {
  printf("Result is: %d", myFunction(5, 3));
  return 0;
}

مشاهده در ادیتور

می توانی نتیجه را در متغیر ذخیره کنی.

int myFunction(int x, int y) {
  return x + y;
}

int main() {
  int result = myFunction(5, 3);
  printf("Result is = %d", result);
  return 0;
}

مشاهده در ادیتور

این هم نسخه انعطاف پذیرترِ calculateSum با بازگشت مقدار.

int calculateSum(int x, int y) {
  return x + y;
}

int main() {
  int result1 = calculateSum(5, 3);
  int result2 = calculateSum(8, 2);
  int result3 = calculateSum(15, 15);
  printf("Result1 is: %d\n", result1);
  printf("Result2 is: %d\n", result2);
  printf("Result3 is: %d\n", result3);
  return 0;
}

مشاهده در ادیتور

اگر نتایج زیاد هستند، آن ها را در آرایه نگه دار.

int calculateSum(int x, int y) {
  return x + y;
}

int main() {
  int resultArr[6];
  resultArr[0] = calculateSum(5, 3);
  resultArr[1] = calculateSum(8, 2);
  resultArr[2] = calculateSum(15, 15);
  resultArr[3] = calculateSum(9, 1);
  resultArr[4] = calculateSum(7, 7);
  resultArr[5] = calculateSum(1, 1);
  for (int i = 0; i < 6; i++) {
    printf("Result%d is = %d\n", i + 1, resultArr[i]);
  }
  return 0;
}

مشاهده در ادیتور

مثال واقعی: تبدیل دما

یک تبدیل ساده بساز. ورودی پارامتر است. خروجی مقدار بازگشتی است.

float toCelsius(float fahrenheit) {
  return (5.0 / 9.0) * (fahrenheit - 32.0);
}

int main() {
  float f_value = 98.8;
  float result = toCelsius(f_value);
  printf("Fahrenheit: %.2f\n", f_value);
  printf("Convert Fahrenheit to Celsius: %.2f\n", result);
  return 0;
}

مشاهده در ادیتور

گام های عملی

  1. نام و پارامترهای تابع را مشخص کن.
  2. بدنه را بنویس و از پارامترها استفاده کن.
  3. در main() با آرگومان های درست صدا بزن.

نکته: برای پیش نیازها، صفحه توابع را ببین. برای محدوده متغیرها به اسکوپ برو. برای رشته ها و آرایه ها هم رشته ها و آرایه ها مفیدند.

جمع بندی سریع

  • پارامتر، ورودی تابع است.
  • آرگومان، مقدار هنگام فراخوانی است.
  • ترتیب آرگومان ها بسیار مهم است.
  • تابع می تواند مقدار برگرداند.
  • نتایج زیاد را در آرایه نگه دار.