Sructure คือ โครงสร้างข้อมูลที่นําเอาข้อมูลที่มีชนิดข้อมูลต่างกัน แต่มีความสัมพันธิ์ของข้อมูล มาเก็บเข้าไว้ภายในโครงสร้างเดียวกัน ต้วอย่างเช่น การเก็บข้อมูลของพนักงานบริษัทแห่งหนึ่งที่จะต้องเก็บ ชื่อ, นามสกุล, แผนก, และเงินเดือน โดยการเก็บ ชื่อ, นามสกุล, แผนก, และตําแหน่งเป็น String และทําการเก็บเงินเดือนเป็นจํานวนจริง จะเขียนได้ดังนี้
struct employee{
char name[100];
char laseName[100];
char dept[100];
char position[100];
float salary;
};
struct employee emp;
จะเห็นว่าชนิดต้องมูลของพนักงานบริษัทแต่ละคน ไม่ว่าจะเป็นชือ, นามสกุล, แผนก, ตําแหน่ง, หรือเงินเดือน แม้จะเป็นชนิดข้อมูลที่แตกต่างกัน แต่สามารถเก็บไว้ใน Structure เดียวกันได้
รูปแบบการประกาศข้อมูลแบบ Structure
รูปแบบการประกาศข้อมูลแบบ structure สามารทําได้ 2 รูปแบบคือ แบบที่ 1
struct ชื่อตัวแปรสตรัคเจอร์{
ชนิดข้อมูลตัวที่1 ชื่อตัวแปบตัวที่1
ชนิดข้อมูลตัวที่2 ชื่อตัวแปบตัวที่2
ชนิดข้อมูลตัวที่3 ชื่อตัวแปบตัวที่3
...
ชนิดข้อมูลตัวที่n ชื่อตัวแปบตัวที่n
} ชื่อตัวแปรที่ใช้อ้างอิงสตรัคเจอร์;
ตัวอย่าง
struct student{
char student_id;
int point;
float grade;
}std;
แบบที่ 2
struct ชื่อตัวแปรสตรัคเจอร์{
ชนิดข้อมูลตัวที่1 ชื่อตัวแปบตัวที่1
ชนิดข้อมูลตัวที่2 ชื่อตัวแปบตัวที่2
ชนิดข้อมูลตัวที่3 ชื่อตัวแปบตัวที่3
...
ชนิดข้อมูลตัวที่n ชื่อตัวแปบตัวที่n
};
struct ชื่อตัวแปรที่ใช้อ้างอิงสตรัคเจอร์;
ตัวอย่าง
struct student{
char student_id;
int point;
float grade;
};
struct student std;
การกําหนดค่าเริ่มต้นให้กับสมาชิกของ Structure
การกําหนดค่าเริ่มต้นให้กับสมาชิกของ Structure นั้น มีหลักการคล้ายกับการกําหนดค่าเริ่มต้นให้กับตัวแปร Array คือจะต้องกําหนดค่าเริ่มต้นไว้ใน { } และแยกแต่ละค่าด้วย ,(Comma) เช่น
struct person{
char name[100];
int age;
};
struct person ps = {"Thiti", 20};
การเข้าถึงสมาชิกแต่ละตัวของ Structure
รูปแบบการเข้าถึงสมาชิคของ Structure คือ
ชื่อตัวแปรอ้างอิงสตรัคเจอร์.สมาชิก
เช่น
struct person{
char name[100];
int age;
};
struct person ps = {"Thiti", 20};
printf("Name: %s", ps.name); //จะได้ชื่อออกมา
printf("Age: %s", ps.age); //จะได้อายุออกมา
ps.age = 15; //กําหนดค่า 15 ให้กับสมาชิก age
จากตัวอย่างจะดึงข้อมูลของสมาชิก name และ age ออกมาจากตัวแปร structure ps และกําหนดค่า 15 ให้กับตัวแปร age