مثال Structure در زبان c
بعد از آشنایی با برنامه نویسی و نیاز به متغیر ها، دیدیم که خیلی وقت ها یک متغیر پاسخگو نیست و نیاز به تعریف آرایه داریم که میشد مجموعه ای از متغیر ها.
مثلا برای نمره های یک دانشجو یک آرایه تعریف میکردیم، ولی اگه میخواستیم نام دانشجو هارو هم ذخیره میکردیم باید یک آرایه مجزا تعریف میکردیم که این کار کد رو کثیف و توسعه و مشکل یابی رو سخت تر میکرد.
Structure ها در زبان c اجازه ی تعریف متغیر های جدیدی را به ما میدهند که خودشون متغیر های دیگر ساخته شده اند.
سینتکس:
struct [structure name] { member definition; member definition; ... member definition; } [Optional - one or more structure variables];
مثال: structure ای که نام، معدل و سال ثبت نام در دانشگاه دانشجو را ذخیره کند.
struct Student{ char name[255]; double avg; int regYear; } st1, st2, sts[100];
متغیر های st2,st1 و آرایه sts به صورت اختیاری تعریف شدن و میشه در برنامه اون هارو تعریف کرد.
structure هارو میشه هم داخل تابع main و هم خارج از اون تعریف کرد.
برای دسترسی به عضو های هر structure از علامت '.' استفاده میکنیم.
چون structure چیزه خاصی نداره فقط یه مثال میزنم خودتون کد رو بررسی کنید، اگه سوالی داشتین تو گوگل سرچ کنید و اگه به نتیجه نرسیدید اینا نظر بزارین.
#include<string.h> struct Student{ char name[255]; double avg; int regYear; } st1,st2,sts[100]; void printStudent(struct Student st){ printf("\n--------\nName: %s\nAverage: %.2f\nRegster Year: %d",st.name,st.avg,st.regYear); } int main(){ //init int i; srand(time(NULL)); strcpy(st1.name,"Ali"); st1.avg = 13.5; st1.regYear = 1394; printf("\nName: %s\nAverage: %f\nRegster Year: %d\n",st1.name,st1.avg,st1.regYear); //Print members of st1 st2 = st1; // st2 is now equal to s2 printStudent(st2); // Pass structure to function for printing for(i=0;i<100;i++){ strcpy(sts[i].name, "Student" ); sts[i].avg = 17.1; sts[i].regYear = 1394; } printStudent(sts[srand()%100]); // print random student struct Student st3; strcpy(st3.name, "Student3" ); st3.avg = 12.1; st3.regYear = 1392; printStudent(st3); struct Student st4 = {"Student4", 16.8, 1390}; // set default values printStudent(st4); return 0; }
خروجی:
Name: Ali Average: 13.500000 Regster Year: 1394 -------- Name: Ali Average: 13.50 Regster Year: 1394 -------- Name: Student Average: 17.10 Regster Year: 1394 -------- Name: Student3 Average: 12.10 Regster Year: 1392 -------- Name: Student4 Average: 16.80 Regster Year: 1390 Process returned 0 (0x0) execution time : 0.009 s Press any key to continue.
برای تحقیق بیشتر، راجع به تعریف structure در structure سرچ کنید.

عضو نیستید؟ از اینجا در کمتر از 20 ثانیه ثبت نام کنید :)