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)->diemTB
2.
#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;
}