Cấu trúc là một tập hợp các biến kiểu dữ liệu khác nhau, được nhóm lại với nhau dưới một tên duy nhất.
Đặc điểm của cấu trúc
Các tính năng của cấu trúc được giải thích bên dưới -
-
Có thể sao chép nội dung của tất cả các phần tử cấu trúc của các kiểu dữ liệu khác nhau sang một biến cấu trúc khác cùng kiểu của nó bằng cách sử dụng toán tử gán.
-
Để xử lý các kiểu dữ liệu phức tạp, tốt hơn nên tạo một cấu trúc trong một cấu trúc khác, cấu trúc này được gọi là cấu trúc lồng nhau.
-
Có thể chuyển toàn bộ cấu trúc, các phần tử riêng lẻ của cấu trúc và địa chỉ của cấu trúc cho một hàm.
-
Cũng có thể tạo các con trỏ cấu trúc.
Khai báo cấu trúc
Hình thức khai báo cấu trúc chung như sau -
datatype member1; struct tagname{ datatype member2; datatype member n; };
Đây, struct là từ khóa.
tên thẻ chỉ định tên của cấu trúc.
thành viên1, thành viên2 là các mục dữ liệu.
Ví dụ:
struct book{ int pages; char author [30]; float price; };
Ví dụ
Sau đây là chương trình C cho cấu trúc trong 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{ 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; }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
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