CẤU TRÚC STRUCT C++

     

Các mảng vào C có thể chấp nhận được bạn khái niệm một vài một số loại biến rất có thể giữ cực hiếm của một vài ba thành phần thuộc kiểu dữ liêu. Tuy vậy structure - cấu trúc là một trong những loại tài liệu khác trong ngôn từ lập trình C, có thể chấp nhận được bạn phối kết hợp các dữ liệu khác dạng hình nhau.

Bạn đang xem: Cấu trúc struct c++

Cấu trúc được sử dụng để màn biểu diễn một bạn dạng ghi. Mang sử bạn muốn lưu trữ cực hiếm của một cuốn sách trong tủ sách của bạn. Chúng ta cũng có thể lưu trữ các thuộc tính của sách sau đây:

Tiêu đềTác giảChủ đềID (giống như là mã số sinh viên của bạn)

Định nghĩa một kết cấu trong C

Để định nghĩa cấu trúc, các bạn phải thực hiện câu lệnh struct. Câu lệnh struct có mang một kiểu tài liệu mới, với trên một thành bên trong chương trình của bạn. Dạng bao quát của câu lệnh struct như sau đây:

struct phan dinh nghia thanh vien cau truc; phan dinh nghia thanh vien cau truc; ... Phan dinh nghia thanh vien cau truc; ; Một ten_cau_truc hoàn toàn có thể tùy chọn và một thành phần quan niệm là những biến thường như int i, float j hoặc một định nghĩa biến khác …. Trên phần sau cuối của có mang cấu trúc, trước vệt chấm phẩy, bạn có thể xác định một hoặc các biến cấu tạo (tùy chọn). Dưới đấy là cách khai báo trở nên structure Book:

struct Books char tieude<50>; char tacgia<50>; char chude<100>; int id; book;

Truy cập những thành phần của cấu trúc trong C

Để truy cập ngẫu nhiên thành phần như thế nào của cấu trúc, bạn thực hiện toán tử truy cập phần tử. Dưới đó là ví dụ đến cách thực hiện cấu trúc:

#include #include struct Books char tieude<50>; char tacgia<50>; char chude<100>; int id;;int main( ) struct Books Book1; /* Khai bao Book1 la cua kieu Book */ struct Books Book2; /* Khai bao Book2 la cua kieu Book */ /* thong tin chi tiet quyen sach thu nhat */ strcpy( Book1.tieude, "Lap trinh C"); strcpy( Book1.tacgia, "Pham Van At"); strcpy( Book1.chude, "Ngon dại lap trinh C"); Book1.id = 1234567; /* thong tin bỏ ra tiet quyen sach thu nhị */ strcpy( Book2.tieude, "Toi thế hoa vang tren co xanh"); strcpy( Book2.tacgia, "Nguyen Nhat Anh"); strcpy( Book2.chude, "Van hoc"); Book2.id = 6677028; /* hien thi thong tin Book1 */ printf( "Tieu de cua Book1 la: %s ", Book1.tieude); printf( "Tac gia cua Book1 la: %s ", Book1.tacgia); printf( "Chu de cua Book1 la: %s ", Book1.chude); printf( "ID cua Book1 la: %d ", Book1.id); /* hien thi thong tin Book2 */ printf( "Tieu de cua Book2 la: %s ", Book2.tieude); printf( "Tac gia cua Book2 la: %s ", Book2.tacgia); printf( "Chu de cua Book2 la: %s ", Book2.chude); printf( "ID cua Book2 la: %d ", Book2.id); printf(" =========================== "); printf("vectordep.vn chuc cac ban hoc tot! "); return 0;Biên dịch với chạy công tác C bên trên sẽ đến kết quả:

*

Các cấu trúc như các tham số hàm

Bạn rất có thể đặt cấu trúc như một tham số của hàm theo cách dễ dàng như các biến khác hay nhỏ trỏ. Truy cập biến cấu tạo như ví dụ dưới đây:

#include #include struct Books char tieude<50>; char tacgia<50>; char chude<100>; int id;;/* khai bao đắm say */void inthongtinsach( struct Books book );int main( ) struct Books Book1; /* Khai bao Book1 la cua kieu Book */ struct Books Book2; /* Khai bao Book2 la cua kieu Book */ /* thong tin chi tiet quyen sach thu nhat */ strcpy( Book1.tieude, "Lap trinh C"); strcpy( Book1.tacgia, "Pham Van At"); strcpy( Book1.chude, "Ngon lẩn thẩn lap trinh C"); Book1.id = 1234567; /* thong tin đưa ra tiet quyen sach thu nhị */ strcpy( Book2.tieude, "Toi thế hoa vang tren teo xanh"); strcpy( Book2.tacgia, "Nguyen Nhat Anh"); strcpy( Book2.chude, "Van hoc"); Book2.id = 6677028; /* hien thi thong tin Book1 */ inthongtinsach( Book1 ); /* hien thi thong tin Book2 */ inthongtinsach( Book2 ); printf(" =========================== "); printf("vectordep.vn chuc cac ban hoc tot! "); return 0;void inthongtinsach( struct Books book ) printf( "Tieu de sach: %s ", book.tieude); printf( "Tac gia: %s ", book.tacgia); printf( "Chu de: %s ", book.chude); printf( "Book ID: %d ", book.id);Biên dịch với chạy công tác C trên sẽ cho kết quả:

*

Con trỏ cho tới cấu trúc

Bạn hoàn toàn có thể định nghĩa bé trỏ kết cấu theo cách bạn định nghĩa các loại bé trỏ khác như sau:

struct Books *struct_pointer;Bây giờ chúng ta có thể lưu địa chỉ của biến cấu tạo trong biến bé trỏ được tư tưởng ở trên. Để tìm địa chỉ của một biến cấu trúc, đặt toán tử & trước tên cấu trúc như sau:

struct_pointer = &Book1;Để truy cập vào thành phần của một structure thực hiện con trỏ tới structure đó, các bạn phải áp dụng toán tử -> như sau:

struct_pointer->tieude;Bây giờ chúng ta viết lại lấy một ví dụ trên áp dụng con trỏ cấu trúc, mong muốn điều này vẫn dễ dàng cho mình để hiểu có mang này:

#include #include struct Books char tieude<50>; char tacgia<50>; char chude<100>; int id;;/* khai bao đắm say */void inthongtinsach( struct Books *book );int main( ) struct Books Book1; /* Khai bao Book1 la cua kieu Book */ struct Books Book2; /* Khai bao Book2 la cua kieu Book */ /* thong tin đưa ra tiet quyen sach thu nhat */ strcpy( Book1.tieude, "Lap trinh C"); strcpy( Book1.tacgia, "Pham Van At"); strcpy( Book1.chude, "Ngon ngây ngô lap trinh C"); Book1.id = 1234567; /* thong tin bỏ ra tiet quyen sach thu nhị */ strcpy( Book2.tieude, "Toi nỗ lực hoa vang tren teo xanh"); strcpy( Book2.tacgia, "Nguyen Nhat Anh"); strcpy( Book2.chude, "Van hoc"); Book2.id = 6677028; /* in thong tin Book1 bang cach truyen dia đưa ra cua Book1 */ inthongtinsach( &Book1 ); /* in thong tin Book2 bang cach truyen dia bỏ ra cua Book2 */ inthongtinsach( &Book2 ); printf(" =========================== "); printf("vectordep.vn chuc cac ban hoc tot! "); return 0;void inthongtinsach( struct Books *book ) printf( "Tieu de sach: %s ", book->tieude); printf( "Tac gia: %s ", book->tacgia); printf( "Chu de: %s ", book->chude); printf( "Book ID: %d ", book->id);Biên dịch cùng chạy lịch trình C trên sẽ cho kết quả:

*

Các trường bit (Bit Fields) vào C

Các trường bit có thể chấp nhận được đóng gói tài liệu trong một cấu trúc. Nó giúp về tối ưu hóa bộ nhớ.

Xem thêm: Trái Tim Kiêu Hãnh Vtc6 - Trái Tim Kiêu Hãnh (Tập 3)

C chất nhận được bạn triển khai điều này trong một định nghĩa cấu tạo bởi vấn đề đặt: độ nhiều năm bit sau biến. Ví dụ:

struct packed_struct unsigned int f1:1; unsigned int f2:1; unsigned int f3:1; unsigned int f4:1; unsigned int type:4; unsigned int my_int:9; pack;Ở đây, packed_struct cất 6 phần tử: 4 thành phần f1..f4 là một trong bit, một type là 4 bit và một my_int 9 bit.

Xem thêm: Nhụy Hoa Nghệ Tây Công Dụng, Lợi Ích Của Nhụy Hoa Nghệ Tây Đối Với Sức Khỏe

C auto đóng gói những trường bit trên càng gọn càng tốt, miễn là chiều dài tối đa của ngôi trường này nhỏ dại hơn hoặc bằng với chiều nhiều năm từ nguyên của dòng sản phẩm tính. Bạn sẽ tìm đọc về những trường bit vào một chương riêng.