স্ট্রাকচার হল বিভিন্ন ডেটা টাইপের ভেরিয়েবলগুলোর একটি সংকলন, যা একক নামের অধীনে গোষ্ঠীবদ্ধ থাকে।
স্ট্রাকচার ডিক্লেয়ারেশন এবং ইনিশিয়ালাইজেশন
স্ট্রাকচার ডিক্লেয়ারেশনের সাধারণ ফর্ম নিম্নরূপ:
datatype member1; struct tagname{ datatype member2; datatype member n; };এখানে, struct - কীওয়ার্ড
tagname - স্ট্রাকচারের নাম নির্দিষ্ট করে
member1, member2 - স্ট্রাকচার গঠনকারী ডেটা আইটেম নির্দিষ্ট করে।
উদাহরণ
struct book{ int pages; char author[30]; float price; };স্ট্রাকচার ভেরিয়েবল
স্ট্রাকচার ভেরিয়েবল ডিক্লেয়ার করার তিনটি পদ্ধতি রয়েছে:
1) struct book{ int pages; char author[30]; float price; }b; 2) struct{ int pages; char author[30]; float price; }b; 3) struct book{ int pages; char author[30]; float price; }; struct book b;স্ট্রাকচারের ইনিশিয়ালাইজেশন এবং এক্সেস
একটি মেম্বার এবং স্ট্রাকচার ভেরিয়েবলের মধ্যে লিংক স্থাপন করা হয় মেম্বার অপারেটর (.) বা ডট অপারেটর দিয়ে।
ইনিশিয়ালাইজেশন নিম্নলিখিত পদ্ধতিতে করা যায়:
পদ্ধতি ১
struct book{ int pages; char author[30]; float price; } b = {100, "balu", 325.75};পদ্ধতি ২
struct book{ int pages; char author[30]; float price; }; struct book b = {100, "balu", 325.75};পদ্ধতি ৩ (মেম্বার অপারেটর ব্যবহার করে)
struct book{ int pages; char author[30]; float price; }; struct book b; b.pages = 100; strcpy(b.author, "balu"); b.price = 325.75;পদ্ধতি ৪ (scanf ফাংশন ব্যবহার করে)
struct book{ int pages; char author[30]; float price; }; struct book b; scanf("%d", &b.pages); scanf("%s", b.author); scanf("%f", &b.price);উপরের যেকোনো স্ট্রাকচারের কনটেন্ট মেইন মেথডে নিচের মত প্রিন্ট করা যায়:
main(){ struct book b; clrscr(); printf("বইর পৃষ্ঠা, লেখক, দাম লিখুন"); scanf("%d%s%f", &b.pages, b.author, &b.price); printf("বইর বিবরণ"); printf("pages = %d, author = %s, price = %f", b.pages, b.author, b.price); getch(); }উদাহরণ
স্ট্রাকচার সম্পর্কিত আরেকটি উদাহরণ নিচে দেওয়া হল:
#includestruct aaa{ struct aaa *prev; int i; struct aaa *next; }; main(){ struct aaa abc, def, ghi, jkl; int x = 100; abc.i = 0; abc.prev = &jkl; abc.next = &def; def.i = 1; def.prev = &abc; def.next = &ghi; ghi.i = 2; ghi.prev = &def; ghi.next = &jkl; jkl.i = 3; jkl.prev = &ghi; jkl.next = &abc; x = abc.next->next->prev->next->i; printf("%d", x); }
আউটপুট
2