সি প্রোগ্রামিং ল্যাঙ্গুয়েজে, স্ট্রাকচার হল বিভিন্ন ডেটাটাইপ ভেরিয়েবলের একটি সংগ্রহ, যেগুলিকে একক নামে একত্রিত করা হয়।
গঠনগুলির ঘোষণা এবং সূচনা
একটি গঠন ঘোষণার সাধারণ ফর্ম নিম্নরূপ -
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