C প্রোগ্রামিং ভাষায়, একটি স্ট্রাকচার হলো বিভিন্ন ডেটা টাইপের ভেরিয়েবলগুলোর একটি সংগ্রহ, যেগুলো একটি একক নামের অধীনে গ্রুপ করা হয়।
স্ট্রাকচার ঘোষণা এবং ইনিশিয়ালাইজেশন
স্ট্রাকচার ঘোষণার সাধারণ ফর্ম নিম্নরূপ:
datatype member1; struct tagname{ datatype member2; datatype member n; };
এখানে,
- struct হলো একটি কীওয়ার্ড।
- tagname স্ট্রাকচারের নাম নির্দেশ করে।
- member1, member2 স্ট্রাকচার বানানোর ডেটা আইটেম নির্দেশ করে।
উদাহরণস্বরূপ,
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;
উদাহরণ
স্ট্রাকচার ভেরিয়েবল তুলনার C প্রোগ্রাম:
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