با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش ++C در خدمت شما دوستان هستیم. در این جلسه قصد داریم به آموزش ساختار struct در ++C یا ساختمان ها در ++C بپردازیم.
ساختمان ها (Structures) نوع داده ای هستند که می توانند انواع مختلف داده های دیگر را در خود تحت یک نام ذخیره کند.
برای مثال فرض نید که می خواهید اطلاعات یک کارمند را مانند نام، نام خانوادگی، شماره پرسنلی و حقوق ذخیره کنید.
برای اینکار به راحتی می توانید چند متغیر ایجاد کرده و اطلاعات را درون آن ها ذخیره کنید.
اما وقتی تعداد کارمند ها بیش تر از یک نفر باشد کار به این راحتی ها هم نیست و دسترسی به هریک از اطلاعات به سبک فوق اگر غیر ممکن نباشد بسیار طاقت فرسا است.
برای حل این مشکل از ساختمان ها استفاده می کنیم.
ساختمان ها داده های زیادی را می توانند تحت یک نام در اختیار ما قرار دهند که دسترسی به آن ها را بسیار ساده می کند.
از کلمه کلیدی struct به همراه یک شناسه برای تعریف ساختمان استفاده می کنیم.
سپس داخل آکولاد ها می توانید چندیدن عضو را تعریف کنید.
مثال:
1 2 3 4 5 6 | struct Person { char name[50]; int age; float salary; }; |
در اینجا ساختمان person را با سه عضو name, age و salary تعریف کرده ایم.
هنگامی که یک ساختمان مانند ساختمان person در بالا تعریف کردید، می توانید متغیر های ساختمان را مانند پایین تعریف کنید:
1 | Person bill; |
در اینجا متغیر bill از نوع ساختمان person را تعریف کرده ایم.
وقتی متغیر ساختمان تعریف می شود، حافظه مورد نیاز توسط کامپایلر اخذ می شود.
فرض کنید یک سیستم ۳۲ یا ۶۴ بیتی دارید. اندازه float و int 4 بایت , و اندازه char 1 بایت می باشد.
بنابراین متغیر bill 58 بایت از حافظه را اشغال می کند.
برای دسترسی به اعضا ساختمان از . (نقطه) استفاده می کنیم.
برای مثال برای دسترسی به عضو age از متغیر bill به صورت زیر عمل می کنیم:
1 | bill.age = 50; |
در مثال زیر داده هایی را که از کاربر دریافت می کنیم به اعضا ساختمان اختصاص می دهیم و آن ها را نمایش می دهیم:
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 | #include <iostream> using namespace std; struct Person { char name[50]; int age; float salary; }; int main() { Person p1; cout << "Enter Full name: "; cin.get(p1.name, 50); cout << "Enter age: "; cin >> p1.age; cout << "Enter salary: "; cin >> p1.salary; cout << "\nDisplaying Information." << endl; cout << "Name: " << p1.name << endl; cout <<"Age: " << p1.age << endl; cout << "Salary: " << p1.salary; return 0; } |
خروجی به شکل زیر می باشد:
1 2 3 4 5 6 7 8 | Enter Full name: Magdalena Dankova Enter age: 27 Enter salary: 1024.4 Displaying Information. Name: Magdalena Dankova Age: 27 Salary: 1024.4 |
جلسه آموزش ساختمان ها در ++C نیز به پایان رسید.
در جلسه بعد به آموزش ارسال ساختمان ها به تابع در ++C خواهیم پرداخت. با ما همراه باشید.
m
ممنون خیلی خوب بود
saara
سایت خیلی خوبی دارید
امیدوارم موفق باشید
مهسا
سلام و وقت بخیر
ممنون از سایت خوبتون
سوالی داشتم…فرض کنید شما در ابتدا نمی دانید تعداد اعضای ساختار شما چندتاست!! ولی در ادامه برنامه این تعداد مشخص می شود و سپس با توجه به تعداد اعضا، هریک مقدار دهی می شوند. چگونه می توان چنین ساختاری تعریف کرد؟