ساختارهای ++C — راهنمای جامع
در این مقاله با ساختارهای ++C آشنا میشویم. به این ترتیب به توضیح مفهوم ساختار در این زبان برنامهنویسی، شیوه تعریف آن و کاربردشان در برنامهها میپردازیم. برای مطالعه بخش قبلی این سری مقالات روی لینک زیر کلیک کنید:
ساختار به مجموعهای از متغیرهای با نوع داده متفاوت گفته میشود که تحت یک نام منفرد گرد هم آمده باشند. ساختار شبیه به یک کلاس است، چون یک مجموعه از دادهها با انواع داده مختلف در خود جای میدهد.
برای مثال فرض کنید میخواهید نوعی اطلاعات در مورد یک فرد ذخیره کنید که شامل نام وی، شماره ملی و میزان حقوقش میشود. به این منظور میتوان متغیرهای مختلفی به صورت name ،citNo و salary برای ذخیرهسازی مجزای این اطلاعات ایجاد کرد.
با این حال در ادامه ممکن است بخواهید این اطلاعات را برای افراد متفاوتی ذخیره کنید. در این حالت باید متغیرهای مختلفی برای اطلاعات هر فرد به صورت name1 ،citNo1 ،salary1 ،name2 ،citNo2 ،salary2 بسازید.
به سادگی میبینید که این وضعیت موجب شلوغ شدن و بههمریختگی کد میشود. همچنین از آن جا که هیچ رابطهای بین متغیرها وجود ندارد، به کار خستهکنندهای تبدیل میشود.
یک رویکرد بهتر در این حالت آن است که مجموعهای از اطلاعات مرتبط را تحت نام منفرد Person داشته باشیم و از آن برای همه افراد استفاده کنیم. بدین ترتیب کد تمیزتر به نظر میرسد و خوانایی و کارایی آن نیز افزایش مییابد.
این مجموعه از همه اطلاعات به هم مرتبط تحت یک نام منفرد Person به صورت «ساختار» (Structure) نامیده میشود.
اعلان ساختار در زبان برنامهنویسی ++C
کلیدواژه struct یک نوع ساختار را تعریف میکند و در ادامه یک شناسه به صورت نام ساختار ارائه میشود. سپس درون آکولاد میتوان یک یا چند عضو ساختار را اعلان کرد. متغیرها درون آکولادها اعلان میشوند.
به مثال زیر توجه کنید:
1struct Person
2{
3 char name[50];
4 int age;
5 float salary;
6};
در ادامه یک ساختار person را میبینید که دارای سه عضو به صورت name ،age و salary است. زمانی که یک ساختار ایجاد میشود، هنوز هیچ حافظهای تخصیص نیافته است.
تعریف ساختار تنها یک نقشه اولیه برای ایجاد متغیرها محسوب میشود. آن را میتوان یک datatype تصور کرد. برای نمونه یک عدد صحیح را میتوان به صورت زیر تعریف کرد:
1int foo;
عبارت int تعیین میکند که متغیر foo میتواند صرفاً عناصر عدد صحیح را در خود جای دهد. به طور مشابه تعریف ساختار نیز متغیرهایی که میتوانند درون ساختار جای بگیرند را تعریف میکند.
نکته: در انتهای اعلان ساختار باید از نقطهویرگول (;) استفاده کنید.
تعریف یک متغیر ساختار
هنگامی که ساختار person را به صورت فوق تعریف کردید، میتوانید متغیرهای این ساختار را نیز به صورت زیر تعریف کنید:
1Person bill;
به این ترتیب متغیر ساختار bill تعریف میشود که از نوع Person است. تنها زمانی که متغیر ساختار تعریف شد، تخصیص حافظه از سوی کامپایلر انجام میشود.
فرض کنید یک سیستم 32 بیت یا 64 بیت دارید و حافظه متغیر float چهار بایت و متغیر int چهار بایت است و متغیر char تنها 1 بایت از حافظه اشغال میکند. بدین ترتیب برای متغیر ساختار bill باید 58 بایت از حافظه تخصیص پیدا کند.
دسترسی به اعضای ساختار
با استفاده از عملگر نقطه (.) میتوان به اعضای متغیر ساختار دسترسی پیدا کرد. فرض کنید میخواهید به age در متغیر ساختار bill دسترسی بیابید و مقدار آن را 50 تعیین کنید. به این منظور میتوانید از کد زیر استفاده کنید:
1bill.age = 50;
مثالهایی از ساختارهای ++C
برنامه ++C زیر برای انتساب دادهها به اعضای متغیر ساختار و نمایش آن طراحی شده است:
1#include <iostream>
2using namespace std;
3struct Person
4{
5 char name[50];
6 int age;
7 float salary;
8};
9int main()
10{
11 Person p1;
12
13 cout << "Enter Full name: ";
14 cin.get(p1.name, 50);
15 cout << "Enter age: ";
16 cin >> p1.age;
17 cout << "Enter salary: ";
18 cin >> p1.salary;
19 cout << "\nDisplaying Information." << endl;
20 cout << "Name: " << p1.name << endl;
21 cout <<"Age: " << p1.age << endl;
22 cout << "Salary: " << p1.salary;
23 return 0;
24}
خروجی
1Enter Full name: Magdalena Dankova
2Enter age: 27
3Enter salary: 1024.4
4
5Displaying Information.
6Name: Magdalena Dankova
7Age: 27
8Salary: 1024.4
در این کد ساختار Person اعلان میشود که سه عضو name ،age و salary دارد. درون تابع ()main یک متغیر ساختار p1 تعریف شده است. سپس از کاربر خواسته میشود که اطلاعات مورد نیاز را وارد کند و در گام بعدی این اطلاعات به نمایش در میآیند.
برای مطالعه قسمت بعدی این مجموعه مطلب آموزشی روی لینک زیر کلیک کنید:
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- مجموعه آموزشهای دروس علوم و مهندسی کامپیوتر
- آموزش پیشرفته C++ (شی گرایی در سی پلاس پلاس)
- آرایه چندبعدی ++C — راهنمای جامع
- کلاس Storage در ++C — راهنمای جامع
==
توضیحات خیلی عالی هست