Trong bài viết này, bạn sẽ tìm hiểu về các cấu trúc lập trình C: nó là gì?, làm thế nào để xác định nó? và sử dụng nó trong chương trình của bạn như thế nào?. Cấu trúc lập trình C là tập hợp các biến của các loại khác nhau dưới một tên duy nhất.
Từ khóa struct được sử dụng để tạo cấu trúc.
Cú pháp cấu trúc
struct structure_name
{
data_type member1;
data_type member2;
data_type memeber;
};
Lưu ý : Đừng quên dấu chấm phẩy }; trong dòng kết thúc.
Chúng ta có thể tạo cấu trúc cho một người như đã đề cập ở trên là:
struct person
{
char name [50];
int citNo;
lương nổi;
};
Khai báo ở trên tạo ra kiểu dữ liệu có nguồn gốc struct person.
Đối với cấu trúc trên của một người, biến có thể được khai báo là:
struct person
{
char name[50];
int citNo;
float salary;
};
int main()
{
struct person person1, person2, person3[20];
return 0;
}
Một cách khác để tạo biến cấu trúc là:
struct person
{
char name[50];
int citNo;
float salary;
} person1, person2, person3[20];
Trong cả hai trường hợp, hai biến person1, person2 và một mảng person3 có 20 phần tử kiểu struct được tạo ra.
Có hai loại toán tử được sử dụng để truy cập các phần tử của một cấu trúc.
Toán tử thành viên (.)
Toán tử con trỏ cấu trúc (->)
Bất kỳ phần tử nào của một cấu trúc có thể được truy cập như:
structure_variable_name.member_name
Giả sử, chúng ta muốn truy cập mức lương cho biến person2 . Sau đó, nó có thể được truy cập như sau:
person2.salary
Viết chương trình C để thêm hai khoảng cách do người dùng nhập vào. Đo khoảng cách phải bằng inch và chân. (Lưu ý: 12 inch = 1 foot)
#include
struct Distance
{
int feet;
float inch;
} dist1, dist2, sum;
int main()
{
printf("1st distance\n");
// Input of feet for structure variable dist1
printf("Enter feet: ");
scanf("%d", &dist1.feet);
// Input of inch for structure variable dist1
printf("Enter inch: ");
scanf("%f", &dist1.inch);
printf("2nd distance\n");
// Input of feet for structure variable dist2
printf("Enter feet: ");
scanf("%d", &dist2.feet);
// Input of feet for structure variable dist2
printf("Enter inch: ");
scanf("%f", &dist2.inch);
sum.feet = dist1.feet + dist2.feet;
sum.inch = dist1.inch + dist2.inch;
if (sum.inch > 12)
{
//If inch is greater than 12, changing it to feet.
++sum.feet;
sum.inch = sum.inch - 12;
}
// printing sum of distance dist1 and dist2
printf("Sum of distances = %d\'-%.1f\"", sum.feet, sum.inch);
return 0;
}
Đầu ra:
Viết struct structure_name variable_name để khai báo một biến cấu trúc không trực quan như những gì nó biểu thị và mất một số lượng đáng kể thời gian phát triển.
typedef struct complex
{
int imag;
float real;
} comp;
int main()
{
comp comp1, comp2;
}
Vì vậy, các nhà phát triển thường sử dụng typedef để đặt tên cho toàn bộ cấu trúc. Ví dụ:
typedef struct complex
{
int imag;
float real;
} comp;
int main()
{
comp comp1, comp2;
}
Ở đây, typedef từ khóa được sử dụng trong việc tạo kiểu comp (có dạng là struct complex).
Sau đó, hai biến cấu trúc comp1 và comp2 được tạo bởi loại comp này.
Các cấu trúc có thể được lồng trong các cấu trúc khác trong lập trình C.
struct complex
{
int imag_value;
float real_value;
};
struct number
{
struct complex comp;
int thực;
} num1, num2;
Giả sử, bạn muốn truy cập imag_value cho biến cấu trúc num2 sau đó, sử dụng thành phần cấu trúc sau đây.
num2.comp.imag_value
Một số kiến thức về lập trình C: