Cấu trúc là 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 đặc điểm của cấu trúc trong ngôn ngữ lập trình C như sau -
-
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 loại 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 cấu trúc trong một cấu trúc khác, đượ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ó thể tạo con trỏ cấu trúc.
Khai báo và khởi tạ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; };
Chương trình
Sau đây là chương trình C để sắp xếp các tên theo thứ tự bảng chữ cái bằng cách sử dụng cấu trúc -
#include<stdio.h> #include<string.h> struct tag{ char name[10]; int rno; }; typedef struct tag node; node s[5]; sort(int no){ int i,j; node temp; for(i=0;i<no-1;i++) for(j=i+1;j<no;j++) if(strcmp(s[i].name,s[j].name)>0){ temp=s[i]; s[i]=s[j]; s[j]=temp; } } void main(){ int no,i; fflush(stdin); printf("Enter The Number Of Students:"); scanf("%d",&no); for(i=0;i<no;i++){ printf("Enter The Name:"); fflush(stdin); gets(s[i].name); printf("Enter the Roll:"); scanf("%d",&s[i].rno); } sort(no); for(i=0;i<no;i++){ printf("%s\t",s[i].name); printf("%d\n",s[i].rno); } }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
Enter The Number of Students:5 Enter The Name:Priya Enter the Roll:3 Enter The Name:Hari Enter the Roll:5 Enter The Name:Pinky Enter the Roll:7 Enter The Name:Lucky Enter the Roll:1 Enter The Name:Krishna Enter the Roll:2 Hari 5 Krishna 2 Lucky 1 Pinky 7 Priya 3