با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش #C در خدمت شما دوستان هستیم . در بخش قبلی با ساختمان ها در ++C آشنا شدید ، در این جلسه قصد داریم تا به آموزش ارسال ساختمان ها به تابع در ++C بپردازیم.
ساختمان ها (Structure) می توانند مانند انواع آرگومان های دیگر به توابع ارسال شده و برگشت داده شوند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #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; } |
خروجی به شکل زیر می باشد:
1 2 3 4 5 6 7 8 | Enter Full name: Bill Jobs Enter age: 55 Enter salary: 34233.4 Displaying Information. Name: Bill Jobs Age: 55 Salary: 34233.4 |
در برنامه بالا از کاربر خواسته می شود تا نام، سن و حقوق یک شخص را وارد کند.
سپس متغیر ساختمان p به تابع ارسال می شود:
1 | displayData(p); |
تابع فوق هیچ مقداری را برگشت نمی دهد.
در برنامه زیر یک ساختمان را از تابع برگشت می دهیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #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 به تابع getdata ارسال می شود که ورودی هایی را از کاربر دریافت می کند.
1 | p = getData(p); |
مقادیر تمامی اعضای یک ساختمان می تواند با عملگر = در ساختمان دیگری از همان نوع کپی شود. بنابراین برای نیازی به اختصاص تک تک اعضا به صورت دستی وجود ندارد.
سپس متغیر p به تابع displayData ارسال می شود تا مقادیر نمایش داده شوند.
جلسه ارسال ساختمان ها به تابع در ++C نیز به پایان رسید.
در جلسه بعد به آموزش اشاره گر به ساختمان در ++C خواهیم پرداخت. با ما همراه باشید.
همچنین می توانید نظرات و سوالات خود را از طریق بخش نظرات سایت با ما در میان بگذارید.
امیرحسین
سلام.
می خواستم پنج ستاره بدم از اون ور اشتباهی دادم امتیازتون کم شد.
دوباره رای دادم، این دفعه پنج ستاره، امتیازتون بیشتر شد. البته عجیبه هر آی پی باید یک رای بتونه بده!
برای این که دوباره به پنج ستاره برسید یه عالمه رای دادم پنج تا رای که داشتید شد هشتادو شیش تا.
آخراش درصدش کند پیش می رفت ولی بالاخره پنج ستاره کردمش😎💪😁
همین دیگه. ببخشید این جور شد.
راستی خیلی عالی آموزش دادید. دستتون درد نکنه.
از رو کتاب که می خونم خیلی سخته.
مرسی ازتون.
پی وی لرن
ممنون، نظر لطف شماست
بله درست است، در حال آپدیت قالب هستیم و به زودی اصلاح می گردد.