struct

1. Khai báo struct
struct là kiểu dữ liệu có thể bao gồm các kiểu dữ liệu cơ bản khác như : int,char*, float, …
Cách khai báo tổng quát như sau:

struct <tên struct>
{
<Data type> Biến 1;
<Data type> Biến 2;
...
<Data type> Biến n;
}<Khai báo thêm các biến struct>;

Ví dụ 1:

struct Date   // tên struct : Date
{
    int day;
    int month;
    int year;
};

2. Khởi tạo struct

Ở trên, ta đã khai báo struct có tên Date gồm 3 trường số nguyên : day,month,year. Sau khi khai báo ta có thể khởi tạo cho struct Date như sau:

Date date = {22,11,2013};

3. Truy cập đến từng trường trong struct. 

Để truy cập đến từng trường trong struct Date ta dùng toán tử “.” như sau:

Ví dụ 2:

#include <conio.h>
#include <stdio.h>
struct Date
{
    int day;
    int month;
    int year;
}date;

void main()
{
    Date date = {22, 11, 2013};
    printf("\n dd/mm/yyyy = %d/%d/%d", date.day, date.month, date.year);
    getch();
}

Kết quả:

dd/mm/yyyy = 22/11/2013

4. Con trỏ cấu trúc

Ta có thể khai báo con trỏ kiểu cấu trúc, dùng toán tử “->” để truy cập đến các phần tử trong cấu trúc.
Ví dụ 3:

#include <conio.h>
#include <stdio.h>
struct Date
{
    int day;
    int month;
    int year;
};

void main()
{
    Date *pDate;  // khai báo con trỏ kiểu Date
    // khởi tạo cho các trường trong kiểu Date
    pDate->day = 22;
    pDate->month = 11;
    pDate->year = 2013;
    printf("\n dd/mm/yyyy = %d/%d/%d", pDate->day, pDate->month, pDate->year);
    getch();
}

Kết quả:

dd/mm/yyyy = 22/11/2013

Ngoài cách khai báo con trỏ kiểu Date ở trên, ta có thể dùng từ khóa typedef để khai báo con trỏ kiểu Date :
Ví dụ 4:

#include <conio.h>
#include <stdio.h>

typedef struct Date
{
    int day;
    int month;
    int year;
}*DATE;

void main()
{
    DATE pDate;
    pDate->day = 22;
    pDate->month = 11;
    pDate->year = 2013;
    printf("\n dd/mm/yyyy = %d/%d/%d", pDate->day, pDate->month, pDate->year);
    getch();
}

Kết quả:

dd/mm/yyyy = 22/11/2013

Be the first to comment

Leave a Reply