ارسال ساختار به تابع در ++C — راهنمای جامع

۱۹۶ بازدید
آخرین به‌روزرسانی: ۸ مرداد ۱۴۰۲
زمان مطالعه: ۲ دقیقه
ارسال ساختار به تابع

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

برای مطالعه قسمت قبلی این مجموعه مطلب آموزشی می‌توانید روی این لینک کلیک کنید: «ساختارهای ++C — راهنمای جامع».

ارسال ساختار به تابع در ++C

یک متغیر ساختار را می‌توان به روشی مشابه آرگومان نرمال به تابع ارسال کرد. به مثال زیر توجه کنید:

#include <iostream>
using namespace std;
struct Person
{
    char name[50];
    int age;
    float salary;
};
void displayData(Person);   // Function declaration
int main()
{
    Person p;
    cout << "Enter Full name: ";
    cin.get(p.name, 50);
    cout << "Enter age: ";
    cin >> p.age;
    cout << "Enter salary: ";
    cin >> p.salary;
    // Function call with structure variable as an argument
    displayData(p);
    return 0;
}
void displayData(Person p)
{
    cout << "\nDisplaying Information." << endl;
    cout << "Name: " << p.name << endl;
    cout <<"Age: " << p.age << endl;
    cout << "Salary: " << p.salary;
}

خروجی:

Enter Full name: Bill Jobs
Enter age: 55
Enter salary: 34233.4

Displaying Information.
Name: Bill Jobs
Age: 55
Salary: 34233.4

در این برنامه از کاربر خواسته می‌شود که مقادیر name ،age و salary یک فرد (Person) را درون تابع main()‎ وارد کند. سپس متغیر ساختار p به صورت زیر به تابع ارسال می‌شود:

displayData(p);

نوع بازگشتی displayData از نوع void است و یک آرگومان منفرد از نوع Person به آن ارسال می‌شود.

در ادامه اعضای ساختار p از این تابع نمایش می‌یابند:

#include <iostream>
using namespace std;
struct Person {
    char name[50];
    int age;
    float salary;
};
Person getData(Person); 
void displayData(Person); 
int main()
{
    Person p;
    p = getData(p);   
    displayData(p);
    return 0;
}
Person getData(Person p) {
    cout << "Enter Full name: ";
    cin.get(p.name, 50);
    cout << "Enter age: ";
    cin >> p.age;
    cout << "Enter salary: ";
    cin >> p.salary;
    return p;
}
void displayData(Person p)
{
    cout << "\nDisplaying Information." << endl;
    cout << "Name: " << p.name << endl;
    cout <<"Age: " << p.age << endl;
    cout << "Salary: " << p.salary;
}

خروجی این برنامه همانند برنامه فوق است. در این برنامه متغیر ساختار p از نوع ساختار Person است که در تابع ()main تعریف می‌شود. متغیر ساختار p به تابع ()getData ارسال می‌شود که ورودی را از کاربر می‌گیرد و سپس به تابع main بازگشت می‌دهد.

p = getData(p);

نکته: مقدار همه اعضای متغیر ساختار می‌توانند با استفاده از عملگر انتساب = به ساختار دیگر انتساب پیدا کنند، به شرط این که هر دو متغیر ساختار از نوع یکسانی داشته باشند. بدین ترتیب نیازی به انتساب دستی هر عضو وجود ندارد. در ادامه متغیر ساختار p به تابع ()displayData ارسال می‌شود که اطلاعات را به نمایش می‌گذارد. برای مطالعه بخش بعدی روی لینک زیر کلیک کنید:

اگر این نوشته برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۲ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
programiz

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *