Cấu trúc là tập hợp các biến có kiểu dữ liệu khác nhau, được nhóm lại dưới một tên duy nhất.
Dạng chung của khai báo cấu trúc
Khai báo cấu trúc như sau:
struct tagname {
datatype member1;
datatype member2;
datatype member n;
};
Ở đây, struct là từ khóa.
tagname chỉ định tên của cấu trúc.
member1, member2 chỉ định các mục dữ liệu cấu thành cấu trúc.
Ví dụ
Ví dụ sau minh họa việc sử dụng cấu trúc ở phạm vi cục bộ:
struct book {
int pages;
char author[30];
float price;
};
Ví dụ chương trình
Chương trình sau minh họa việc sử dụng cấu trúc ở phạm vi cục bộ:
#include <stdio.h>
struct {
char name[20];
int age;
int salary;
char add[30];
} emp1, emp2;
int manager() {
struct { // cấu trúc ở phạm vi cục bộ
char name[20];
int age;
int salary;
char add[50];
} manager;
manager.age = 27;
if (manager.age > 30)
manager.salary = 650000;
else
manager.salary = 550000;
return manager.salary;
}
int main() {
printf("Nhập tên emp1: ");
scanf("%s", emp1.name);
printf("\nNhập địa chỉ emp1: ");
scanf("%s", emp1.add);
printf("\nNhập lương emp1: ");
scanf("%d", &emp1.salary);
printf("\nNhập tên emp2: ");
scanf("%s", emp2.name);
printf("\nNhập địa chỉ emp2: ");
scanf("%s", emp2.add);
printf("\nNhập lương emp2: ");
scanf("%d", &emp2.salary);
printf("\nLương emp1 là %d", emp1.salary);
printf("\nLương emp2 là %d", emp2.salary);
printf("\nLương manager là %d", manager());
return 0;
}
Kết quả
Nhập tên emp1: Bob Nhập địa chỉ emp1: Hyderabad Nhập lương emp1: 500000 Nhập tên emp2: Hari Nhập địa chỉ emp2: Chennai Nhập lương emp2: 450000 Lương emp1 là 500000 Lương emp2 là 450000 Lương manager là 550000