Mảng Cấu Trúc Trong C
Có thể bạn quan tâm
Cùng tìm hiểu về mảng cấu trúc trong C. Bạn sẽ biết mảng cấu trúc trong C là gì, cách khởi tạo và khai báo mảng cấu trúc trong C, cũng như cách truy cập giá trị và sử dụng mảng cấu trúc trong C sau bài học này.
Mảng cấu trúc trong C là gì
Mảng cấu trúc trong C là mảng chứa các thực thể được tạo ra từ một kiểu cấu trúc bên trong nó. Do thực thể tạo ra từ cấu trúc cũng là một loại giá trị, nên chúng ta cũng có thể lưu trữ chúng như là phần tử trong cùng một mảng. Và các phần tử trong mảng cấu trúc đều có chung kiểu là kiểu cấu trúc đã sử dụng để tạo nên thực thể.
Mảng cấu trúc trong C có đặc tính của cả kiểu mảng và kiểu cấu trúc, do đó chúng ta có thể truy cập vào các thực thể trong mảng cấu trúc thông qua index, cũng như là truy cập vào các thành viên của từng thực thể theo cách thông thường.
Ví dụ, chúng ta có kiểu cấu trúc person_t như sau:
typedef struct { char name[20]; char sex; int age; double height; double weight; } person_t; |
Từ kiểu cấu trúc person_t, chúng ta tạo ra một mảng cấu trúc chứa 5 phần tử là các thực thể được tạo ra từ kiểu cấu trúc này như sau:
Khai báo mảng cấu trúc trong C
Tương tự như khai báo mảng thông thường thì chúng ta khai báo mảng cấu trúc trong C bằng cách đặt kiểu dữ liệu là tên của kiểu cấu trúc được sử dụng trước tên mảng, sau đó đặt số phần tử vào trong cặp dấu [] với cú pháp sau đây:
struct_name array_name[length];
Trong đó struct_name là tên kiểu cấu trúc, array_name là tên mảng, và length chính là số phần tử của mảng, ở đây là số thực thể của kiểu cấu trúc chứa trong mảng.
Lưu ý kiểu dữ liệu ở đây là tên kiểu cấu trúc được sử dụng, và kiểu cấu trúc này cần được khai báo trước trong chương trình.
Ví dụ cụ thể, chúng ta khai báo kiểu cấu trúc person_t, và tạo một mảng cấu trúc chứa 3 thực thể được tạo ra từ person_t như sau:
//Khai báo kiểu cấu trúctypedef struct { char name[20]; char sex; int age; double height; double weight; } person_t;main(void){ //Khai báo mảng cấu trúc chứa 3 thực thể của kiểu cấu trúc person_t p[3];} |
Khởi tạo mảng cấu trúc trong C
Tương tự như khởi tạo mảng thông thường thì chúng ta khởi tạo mảng cấu trúc trong C bằng cách viết các phần tử của mảng cách nhau bởi dấu phẩy vào giữa cặp dấu ngoặc nhọn {} với cú pháp khởi tạo mảng như sau:
struct_name array_name[length] = {value1, value2, value3,..};
Trong đó struct_name là tên kiểu cấu trúc, array_name là tên mảng, length chính là số phần tử của mảng, và các value là giá trị của các thực thể tạo ra từ kiểu cấu trúc chứa trong mảng.
Ví dụ cụ thể, chúng ta khởi tạo mảng cấu trúc trong C như sau:
typedef struct { char name[20]; char sex; int age; double height; double weight; } person_t;main(void){ person_t p[PERSON_NUM] = {{"Bob", 'M', 19, 165.4, 72.5}, {"Alice", 'F', 19, 161.7, 44.2}, {"Tom", 'M', 20, 175.2, 66.3}, {"Stefany", 'F', 18, 159.3, 48.5}, {"Leonardo", 'M', 19, 172.8, 67.2}}; return 0;} |
Truy cập vào phần tử và thành viên trong phần tử của mảng cấu trúc
Mảng cấu trúc có đặc tính của cả kiểu mảng và kiểu cấu trúc, do đó chúng ta có thể truy cập vào các phần tử là các thực thể trong mảng cấu trúc thông qua index, cũng như là truy cập vào các thành viên của từng thực thể thông qua dấu chấm theo cách thông thường.
Ví dụ, chúng ta truy cập vào một thực thể có index chỉ định, và lấy giá trị của một thành viên của thực thể đó như sau:
typedef struct { char name[20]; char sex; int age; double height; double weight; } person_t;main(void){ person_t p[PERSON_NUM] = {{"Bob", 'M', 19, 165.4, 72.5}, {"Alice", 'F', 19, 161.7, 44.2}, {"Tom", 'M', 20, 175.2, 66.3}, {"Stefany", 'F', 18, 159.3, 48.5}, {"Leonardo", 'M', 19, 172.8, 67.2}}; //Truy cập vào thực thể trong mảng cấu trúc và gán thực thể vào một biến person_t p0 = p[0]; //Truy cập vào thành viên của thực thể trên và gán vào một mảng chuỗi char *name = p0.name; // char *name = p[0].name; printf("%s\n",name ); return 0;} |
Kết quả, tên thành viên của thực thể có index bằng 0 sẽ được xuất ra màn hình như sau:
Bob |
Bằng cách này, chúng ta có thể truy xuất và tính toán với các giá trị của thành viên có trong mảng cấu trúc.
Ví dụ, chúng ta có thể tính toán chiều cao trung bình và cân nặng trung bình của các thực thể (các bạn Bob, Alice, Tom, Stefany và Leonardo) trong mảng cấu trúc như sau:
//Định nghĩa số thực thể trong mảng cấu trúc//Khai báo kiểu cấu trúctypedef struct { char name[20]; char sex; int age; double height; double weight; } person_t;main(void){ //Khởi tạo mảng cấu trúc với 5 thực thể được tạo ra từ cấu trúc person_t p[PERSON_NUM] = {{"Bob", 'M', 19, 165.4, 72.5}, {"Alice", 'F', 19, 161.7, 44.2}, {"Tom", 'M', 20, 175.2, 66.3}, {"Stefany", 'F', 18, 159.3, 48.5}, {"Leonardo", 'M', 19, 172.8, 67.2}}; //Khai báo các biến tổng và trung bình của chiều cao và cân nặng double height_sum, weight_sum, height_ave, weight_ave; height_sum = weight_sum = 0.0; //Sử dụng vòng lặp để tính tổng chiều cao và cân nặng từ các thực thể for (short i = 0; i < PERSON_NUM; i++) { height_sum += p[i].height; weight_sum += p[i].weight; } //Từ tổng chiều cao và cân nặng tính ra giá trị trung bình height_ave = height_sum / PERSON_NUM; weight_ave = weight_sum / PERSON_NUM; printf("Chieu cao trung binh = %f\n", height_ave); printf("Can nang trung binh = %f\n", weight_ave); return 0;} |
Kết quả:
Chieu cao trung binh = 166.880000Can nang trung binh = 59.740000 |
Tổng kết
Trên đây Kiyoshi đã hướng dẫn các bạn về mảng cấu trúc trong C là gì, cách khởi tạo và khai báo mảng cấu trúc trong C, cũng như cách truy cập giá trị và sử dụng mảng cấu trúc trong C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo.
URL Link
https://laptrinhcanban.com/c/lap-trinh-c-co-ban/kieu-cau-truc-trong-c/mang-cau-truc-trong-c/
Từ khóa » Code Mảng Cấu Trúc
-
Struct Trong C - Kiểu Cấu Trúc (structure) Trong C - Lập Trình Không Khó
-
Kiểu Cấu Trúc Trong C Là Gì? Cách Khai Báo, Khởi Tạo Và Truy Cập Giá ...
-
Lập Trình C: Cấu Trúc (Struct) | V1Study
-
Cấu Trúc Dữ Liệu Mảng - Mảng Là Gì - Minh Họa C++ - Code Từ Tâm
-
Bài 8.2. Mảng Cấu Trúc (struct Array) Trong Lập Trình C - YouTube
-
Code Mảng Cấu Trúc Sinh Viên Bị Lỗi - Programming - Dạy Nhau Học
-
Cấu Trúc (Struct) Trong C - Hoclaptrinh
-
Cấu Trúc Dữ Liệu Mảng - VietTuts
-
Struct Trong C - Học Lập Trình C Online - Viettuts
-
Lập Trình C: Bài 13 - Kiểu Cấu Trúc - Struct - Nguyễn Văn Quân
-
Mảng Struct Và Ví Dụ ứng Dụng
-
Cấu Trúc Dữ Liệu Trong C/C++
-
[Basic-DSAA] Cấu Trúc Dữ Liệu Mảng - Array. - CodeLearn
-
C++ STRUCTURES - CẤU TRÚC C++ > Iron Hack Việt Nam