সি প্রোগ্রামিং ল্যাঙ্গুয়েজে, স্ট্রাকচার হল বিভিন্ন ডেটাটাইপ ভেরিয়েবলের একটি সংগ্রহ, যেগুলিকে একক নামে একত্রিত করা হয়।
গঠনগুলির ঘোষণা এবং সূচনা
একটি গঠন ঘোষণার সাধারণ ফর্ম নিম্নরূপ -
datatype member1; struct tagname{ datatype member2; datatype member n; };
এখানে,
- struct একটি কীওয়ার্ড।
- ট্যাগনাম কাঠামোর নাম নির্দিষ্ট করে।
- সদস্য1, সদস্য 2 ডেটা আইটেমগুলি নির্দিষ্ট করে যা গঠন তৈরি করে।
উদাহরণস্বরূপ,
struct book{ int pages; char author [30]; float price; };
স্ট্রাকচার ভেরিয়েবল
স্ট্রাকচার ভেরিয়েবল ঘোষণা করার তিনটি পদ্ধতি রয়েছে, যা নিম্নরূপ -
প্রথম পদ্ধতি
struct book{ int pages; char author[30]; float price; }b;
দ্বিতীয় পদ্ধতি
struct{ int pages; char author[30]; float price; }b;
তৃতীয় পদ্ধতি
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;
উদাহরণ
−
গঠন ভেরিয়েবলের তুলনা করার জন্য সি প্রোগ্রামটি নিচে দেওয়া হলstruct class{ int number; char name[20]; float marks; }; main(){ int x; struct class student1 = {001,"Hari",172.50}; struct class student2 = {002,"Bobby", 167.00}; struct class student3; student3 = student2; x = ((student3.number == student2.number) && (student3.marks == student2.marks)) ? 1 : 0; if(x == 1){ printf("\nstudent2 and student3 are same\n\n"); printf("%d %s %f\n", student3.number, student3.name, student3.marks); } else printf("\nstudent2 and student3 are different\n\n"); }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত আউটপুট তৈরি করে −
student2 and student3 are same 2 Bobby 167.000000