Khai báo Struct
VD1:
struct Books{ char tieude[50]; char tacgia[50]; char chude[100]; int book_id;};Ta khai báo struct Books Quyeensach1;
Khi đó ta truy cập vào bằng Quyensach1.tieude...
Con trỏ
struct Books* quyensach2;
quyensach2=&quyensach1;
khi đó ta truy vẫn phần tử: quyensach2->tieude;
Từ khóa typedef
typedef struct Books{ char tieude[50]; char tacgia[50]; char chude[100]; int book_id;}Sach;khi dùng typedef ta khai báo chỉ cần
Sach Quyensach1;
truy vẫn Quyensach1.tieude;
struct sinhvien { char MSV[20]; // ma sinh vien char hoten[30]; // ho ten sinh vien double diemTB; // diem trung binh struct ngaysinh { int ngay, thang, nam; } ns;};Khai báo biến con trỏ và cấp phát bộ nhớ struct
struct sinhvien *CNPMK10A = (struct sinhvien*) malloc(n * sizeof(struct sinhvien));
Truy cập các phần tử struct
Truy cập các thành phần cấu trúc
Để truy cập để lấy dữ liệu các thành phần của con trỏ cấu trúc ta có 3 cách sau:Cách 1: CNPMK10A[i].diemTB;Cách 2: (*(CNPMK10A+i)).diemTB;Cách 3: (CNPMK10A+i) ->diemTB;Cả 3 cách trên đều truy cập tới DTB.Để lấy địa chỉ ta cũng có 2 cách:Cách 1: &CNPMK10A[i].DTB;Cách 2: &(CNPMK10A+i)->diemTB2.
#include <iostream> using namespace std; struct HinhChuNhat { int chieuDai; int chieuRong; HinhChuNhat(int ch, int cr) { chieuDai = ch; chieuRong = cr; } void TinhDienTich() { cout << "Dien tich hinh chu nhat la: " << (chieuDai * chieuRong) << endl; } }; int main(void) { struct HinhChuNhat hcn = HinhChuNhat(3,5); hcn.TinhDienTich(); return 0; }.