คำอธิบาย
Structure (โครงสร้าง) คือการรวมตัวแปรชนิดข้อมูลต่างๆ เข้าด้วยกันภายใต้ชื่อเดียว คุณสมบัติสำคัญ:
- คัดลอกโครงสร้างทั้งตัวได้ด้วย Assignment operator
- รองรับ Nested Structure (โครงสร้างซ้อนโครงสร้าง)
- ส่งผ่านฟังก์ชันได้ทั้งตัว แบบสมาชิก และที่อยู่
- สร้าง Pointer to Structure ได้
โค้ดตัวอย่าง: ระบบคลังสินค้า
#include <stdio.h>
struct date {
int day, month, year;
};
struct details {
char name[20];
int price, code, qty;
struct date mfg;
};
struct details item[50];
int main() {
int n, i;
printf("Enter number of items: ");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("Item name: "); scanf("%s", item[i].name);
printf("Item code: "); scanf("%d", &item[i].code);
printf("Quantity: "); scanf("%d", &item[i].qty);
printf("Price: "); scanf("%d", &item[i].price);
printf("Mfg date (dd-mm-yyyy): ");
scanf("%d-%d-%d", &item[i].mfg.day, &item[i].mfg.month, &item[i].mfg.year);
}
printf("\n***** INVENTORY *****\n");
printf("S.N.| NAME | CODE | QTY | PRICE | MFG.DATE\n");
for (i = 0; i < n; i++)
printf("%d %-15s %-d %-5d %-5d %d/%d/%d\n",
i+1, item[i].name, item[i].code, item[i].qty, item[i].price,
item[i].mfg.day, item[i].mfg.month, item[i].mfg.year);
return 0;
}
ผลลัพธ์ตัวอย่าง
Enter number of items: 5 Item name: pen Item code: 12 Quantity: 50 Price: 25 Mfg date: 12-02-2020 ... ***** INVENTORY ***** 1 pen 12 50 25 12/2/2020 2 pencil 15 100 30 11/3/2020 3 book 34 30 60 15/4/2020 4 bag 39 20 70 12/3/2021 5 sharpner 33 20 40 12/4/2021