স্ট্রাকচার হলো বিভিন্ন ডেটা টাইপের ভেরিয়েবলের সমষ্টি, যা একসাথে একটি নামের অধীনে গোষ্ঠীভুক্ত থাকে।
স্ট্রাকচারের বৈশিষ্ট্য
স্ট্রাকচারের বৈশিষ্ট্যগুলো নিচে ব্যাখ্যা করা হলো −
অসাইনমেন্ট অপারেটর ব্যবহার করে স্ট্রাকচারের সকল এলিমেন্টের কন্টেন্ট অন্য একটি স্ট্রাকচার ভেরিয়েবলে কপি করা সম্ভব।
জটিল ডেটা টাইপ হ্যান্ডল করার জন্য একটি স্ট্রাকচারের ভেতরেই অন্য একটি স্ট্রাকচার তৈরি করা ভালো, যাকে নেস্টেড স্ট্রাকচার বলা হয়।
একটি পুরো স্ট্রাকচার, স্ট্রাকচারের আলাদা এলিমেন্ট, এবং স্ট্রাকচারের ঠিকানা ফাংশনে পাস করা সম্ভব।
স্ট্রাকচার পয়েন্টার তৈরি করাও সম্ভব।
স্ট্রাকচার ডিক্লেয়ারেশন
স্ট্রাকচার ডিক্লেয়ারেশনের সাধারণ ফর্ম নিম্নরূপ −
datatype member1; struct tagname{ datatype member2; datatype member n; };এখানে, struct হলো কীওয়ার্ড।
tagname স্ট্রাকচারের নাম নির্দেশ করে।
member1, member2 হলো ডেটা আইটেম।
উদাহরণস্বরূপ,
struct book{ int pages; char author [30]; float price; };উদাহরণ
নিচে লোকাল স্কোপে স্ট্রাকচারের একটি সি প্রোগ্রাম দেওয়া হলো −
#include<stdio.h> struct{ char name[20]; int age; int salary; char add[30]; }emp1,emp2; int manager(){ struct{ char name[20]; int age; int salary; char add[50]; }manager ; manager.age=27; if(manager.age>30) manager.salary=65000; else manager.salary=55000; return manager.salary; } int main(){ printf("enter the name of emp1:"); //gets(emp1.name); scanf("%s",emp1.name); printf("\nenter the add of emp1:"); scanf("%s",emp1.add); printf("\nenter the salary of emp1:"); scanf("%d",&emp1.salary); printf("\nenter the name of emp2:"); // gets(emp2.name); scanf("%s",emp2.name); printf("\nenter the add of emp2:"); scanf("%s",emp2.add); printf("\nenter the salary of emp2:"); scanf("%d",&emp2.salary); printf("\nemp1 salary is %d",emp1.salary); printf("\nemp2 salary is %d",emp2.salary); printf("\nmanager salary is %d",manager()); return 0; }আউটপুট
উপরোক্ত প্রোগ্রাম এক্সিকিউট করলে নিচের ফলাফল আসে −
enter the name of emp1:hari enter the add of emp1:hyderabad enter the salary of emp1:4000 enter the name of emp2:lucky enter the add of emp2:chennai enter the salary of emp2:5000 emp1 salary is 4000 emp2 salary is 5000 manager salary is 55000