Trong lập trình, đôi khi các kiểu dữ liệu cơ sở chưa đủ mềm dẻo để cho cái bài toán thực tế. Các sự vật, hiện tượng trong thực tế rất phức tạp và có nhiều tình nhất khác nhau. Người lập trình có thể định nghĩa các kiểu dữ liệu mới có cấu trúc phù hợp với từng bài toán cụ thể
Trong khuôn khổ của bài này, ta sẽ tìm hiểu cách khai báo và sử dụng Struct (1 loại kiểu dữ liệu có cấu trúc) trong ngôn ngữ lập trình C.
Khai báo kiểu dữ liệu
struct TênCấuTrúc
{
KiểuDữLiệu1 ThànhPhần1;
KiểuDữLiệu2 ThànhPhần2;
...
KiểuDữLiệun ThànhPhầnn;
};
Khai báo biến có KDL là Struct
struct TênCấuTrúc TênBiến;
Ví dụ : Mô tả 1 kiểu dữ liệu HocSinh bao gồm Họ tên, Năm Sinh, Điểm Trung Bình
struct hocsinh
{
char *HoTen;
int NamSinh;
float DiemTB;
};
Khai báo biến A và mảng hs có kiễu dữ liệu là học sinh
struct hocsinh A; //A có KDL HocSinh
struct hocsinh hs[10]; //Mảng hs có KDL HocSinh
Để tiện cho việc khai báo các biến có KDL là 1 struct, người ta thường khai báo thêm :
typedef struct TênCấuTrúc TênCấuTrúcMới;
Khi đó để khai báo 1 biến có KDL cấu trúc, ta chỉ cần khai báo : TênCấuTrúcMới TênBiến;
Ví dụ với KDL Học sinh đã khai báo ở trên, ta có thể khai báo lại như sau :
struct hocsinh
{
char *HoTen;
int NamSinh;
float DiemTB;
};
typedef struc hocsinh HocSinh;
HocSinh a, hs[10];
Truy xuất 1 thành phần của biến cấu trúc
Biến thường : TênBiến.TênThànhPhần
Biến con trỏ : TênConTrỏ->TênThànhPhần
Một số ví dụ với KDL Phân Số
struc phanso
{
int Tu;
int Mau;
};
typedef struct phanso PhanSo;
//Nhập 1 Phân số
void NhapPS(PhanSo &ps)
{
printf("Nhap tu so: "); scanf("%d",&ps.Tu);
printf("Nhap mau so: "); scanf("%d",&ps.Mau);
}
//Xuất 1 Phân số
void XuatPS(PhanSo ps)
{
printf("%d/%d",ps.Tu,ps.Mau);
}
//Nhập mảng Phân số
void NhapMang(PhanSo ps[],int &n)
{
printf("So phan tu: "); scanf("%d",&n);
for (int i = 0; i < n; i++)
{
printf("Nhap phan so thu %d",i);
NhapPS(ps[i]);
}
}
//Xuất mảng Phân số
void XuatMang(PhanSo ps[], int n)
{
for (int i = 0; i < n; i++)
{
XuatPS(ps[i]);
printf(" "); // Khoảng trắng
}
}
giai tri , game mobile , app android, lap trinh c, kinh nghiem, truyen ngan
kết nối 1,game 3, Đồng hồ gỗ